com.google.common.primitives

## Class UnsignedInteger

- java.lang.Object
- - java.lang.Number
  - - com.google.common.primitives.UnsignedInteger

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<UnsignedInteger>

      @CheckReturnValue
      @GwtCompatible(emulated=true)
      public final class UnsignedInteger
      extends java.lang.Number
      implements java.lang.Comparable<UnsignedInteger>

  A wrapper class for unsigned `int` values, supporting arithmetic operations.

  In some cases, when speed is more important than code readability, it may be faster simply to treat primitive `int` values as unsigned, using the methods from `UnsignedInts`.

  See the Guava User Guide article on unsigned primitive utilities.

  Since:
    11.0
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static UnsignedInteger` | `MAX_VALUE`
    `static UnsignedInteger` | `ONE`
    `static UnsignedInteger` | `ZERO`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.math.BigInteger` | `bigIntegerValue()` Returns the value of this `UnsignedInteger` as a `BigInteger`.
    `int` | `compareTo(UnsignedInteger other)` Compares this unsigned integer to another unsigned integer.
    `UnsignedInteger` | `dividedBy(UnsignedInteger val)` Returns the result of dividing this by `val`.
    `double` | `doubleValue()` Returns the value of this `UnsignedInteger` as a `float`, analogous to a widening primitive conversion from `int` to `double`, and correctly rounded.
    `boolean` | `equals(java.lang.Object obj)`
    `float` | `floatValue()` Returns the value of this `UnsignedInteger` as a `float`, analogous to a widening primitive conversion from `int` to `float`, and correctly rounded.
    `static UnsignedInteger` | `fromIntBits(int bits)` Returns an `UnsignedInteger` corresponding to a given bit representation.
    `int` | `hashCode()`
    `int` | `intValue()` Returns the value of this `UnsignedInteger` as an `int`.
    `long` | `longValue()` Returns the value of this `UnsignedInteger` as a `long`.
    `UnsignedInteger` | `minus(UnsignedInteger val)` Returns the result of subtracting this and `val`.
    `UnsignedInteger` | `mod(UnsignedInteger val)` Returns this mod `val`.
    `UnsignedInteger` | `plus(UnsignedInteger val)` Returns the result of adding this and `val`.
    `UnsignedInteger` | `times(UnsignedInteger val)` Returns the result of multiplying this and `val`.
    `java.lang.String` | `toString()` Returns a string representation of the `UnsignedInteger` value, in base 10.
    `java.lang.String` | `toString(int radix)` Returns a string representation of the `UnsignedInteger` value, in base `radix`.
    `static UnsignedInteger` | `valueOf(java.math.BigInteger value)` Returns a `UnsignedInteger` representing the same value as the specified `BigInteger`.
    `static UnsignedInteger` | `valueOf(long value)` Returns an `UnsignedInteger` that is equal to `value`, if possible.
    `static UnsignedInteger` | `valueOf(java.lang.String string)` Returns an `UnsignedInteger` holding the value of the specified `String`, parsed as an unsigned `int` value.
    `static UnsignedInteger` | `valueOf(java.lang.String string, int radix)` Returns an `UnsignedInteger` holding the value of the specified `String`, parsed as an unsigned `int` value in the specified radix.

    - ### Methods inherited from class java.lang.Number

      `byteValue, shortValue`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ZERO

          public static final UnsignedInteger ZERO

    - #### ONE

          public static final UnsignedInteger ONE

    - #### MAX_VALUE

          public static final UnsignedInteger MAX_VALUE

  - ### Method Detail

    - #### fromIntBits

          public static UnsignedInteger fromIntBits(int bits)

      Returns an `UnsignedInteger` corresponding to a given bit representation. The argument is interpreted as an unsigned 32-bit value. Specifically, the sign bit of `bits` is interpreted as a normal bit, and all other bits are treated as usual.

      If the argument is nonnegative, the returned result will be equal to `bits`, otherwise, the result will be equal to `2^32 + bits`.

      To represent unsigned decimal constants, consider `valueOf(long)` instead.

      Since:
        14.0

    - #### valueOf

          public static UnsignedInteger valueOf(long value)

      Returns an `UnsignedInteger` that is equal to `value`, if possible. The inverse operation of `longValue()`.

    - #### valueOf

          public static UnsignedInteger valueOf(java.math.BigInteger value)

      Returns a `UnsignedInteger` representing the same value as the specified `BigInteger`. This is the inverse operation of `bigIntegerValue()`.
      Throws:
        `java.lang.IllegalArgumentException` - if `value` is negative or `value >= 2^32`

    - #### valueOf

          public static UnsignedInteger valueOf(java.lang.String string)

      Returns an `UnsignedInteger` holding the value of the specified `String`, parsed as an unsigned `int` value.
      Throws:
        `java.lang.NumberFormatException` - if the string does not contain a parsable unsigned `int` value

    - #### valueOf

          public static UnsignedInteger valueOf(java.lang.String string,
                                int radix)

      Returns an `UnsignedInteger` holding the value of the specified `String`, parsed as an unsigned `int` value in the specified radix.
      Throws:
        `java.lang.NumberFormatException` - if the string does not contain a parsable unsigned `int` value

    - #### plus

          public UnsignedInteger plus(UnsignedInteger val)

      Returns the result of adding this and `val`. If the result would have more than 32 bits, returns the low 32 bits of the result.
      Since:
        14.0

    - #### minus

          public UnsignedInteger minus(UnsignedInteger val)

      Returns the result of subtracting this and `val`. If the result would be negative, returns the low 32 bits of the result.
      Since:
        14.0

    - #### times

          @GwtIncompatible(value="Does not truncate correctly")
          public UnsignedInteger times(UnsignedInteger val)

      Returns the result of multiplying this and `val`. If the result would have more than 32 bits, returns the low 32 bits of the result.
      Since:
        14.0

    - #### dividedBy

          public UnsignedInteger dividedBy(UnsignedInteger val)

      Returns the result of dividing this by `val`.
      Throws:
        `java.lang.ArithmeticException` - if `val` is zero
      Since:
        14.0

    - #### mod

          public UnsignedInteger mod(UnsignedInteger val)

      Returns this mod `val`.
      Throws:
        `java.lang.ArithmeticException` - if `val` is zero
      Since:
        14.0

    - #### intValue

          public int intValue()

      Returns the value of this `UnsignedInteger` as an `int`. This is an inverse operation to `fromIntBits(int)`.

      Note that if this `UnsignedInteger` holds a value `>= 2^31`, the returned value will be equal to `this - 2^32`.

      Specified by:
        `intValue` in class `java.lang.Number`

    - #### longValue

          public long longValue()

      Returns the value of this `UnsignedInteger` as a `long`.
      Specified by:
        `longValue` in class `java.lang.Number`

    - #### floatValue

          public float floatValue()

      Returns the value of this `UnsignedInteger` as a `float`, analogous to a widening primitive conversion from `int` to `float`, and correctly rounded.
      Specified by:
        `floatValue` in class `java.lang.Number`

    - #### doubleValue

          public double doubleValue()

      Returns the value of this `UnsignedInteger` as a `float`, analogous to a widening primitive conversion from `int` to `double`, and correctly rounded.
      Specified by:
        `doubleValue` in class `java.lang.Number`

    - #### bigIntegerValue

          public java.math.BigInteger bigIntegerValue()

      Returns the value of this `UnsignedInteger` as a `BigInteger`.

    - #### compareTo

          public int compareTo(UnsignedInteger other)

      Compares this unsigned integer to another unsigned integer. Returns `0` if they are equal, a negative number if `this < other`, and a positive number if `this > other`.
      Specified by:
        `compareTo` in interface `java.lang.Comparable<UnsignedInteger>`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals(@Nullable
                       java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Returns a string representation of the `UnsignedInteger` value, in base 10.
      Overrides:
        `toString` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString(int radix)

      Returns a string representation of the `UnsignedInteger` value, in base `radix`. If `radix < Character.MIN_RADIX` or `radix > Character.MAX_RADIX`, the radix `10` is used.