## com.google.common.primitives
Class UnsignedLong

    java.lang.Object
      java.lang.Number
          com.google.common.primitives.UnsignedLong

All Implemented Interfaces:
  Serializable, Comparable<UnsignedLong>

    @Beta
    @GwtCompatible(serializable=true)
    public final class UnsignedLong

extends Number
implements Comparable<UnsignedLong>, Serializable

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

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

See the Guava User Guide article on unsigned primitive utilities.

Since:
  11.0
Author:
  Louis Wasserman, Colin Evans
See Also:
  Serialized Form

Field Summary
`static UnsignedLong` `MAX_VALUE`
`static UnsignedLong` `ONE`
`static UnsignedLong` `ZERO`

Method Summary
`UnsignedLong` `add(UnsignedLong val)` Returns the result of adding this and `val`.
`static UnsignedLong` `asUnsigned(long value)` Returns an `UnsignedLong` that, when treated as signed, is equal to `value`.
`BigInteger` `bigIntegerValue()` Returns the value of this `UnsignedLong` as a `BigInteger`.
`int` `compareTo(UnsignedLong o)`
`UnsignedLong` `divide(UnsignedLong val)` Returns the result of dividing this by `val`.
`double` `doubleValue()` Returns the value of this `UnsignedLong` as a `double`, analogous to a widening primitive conversion from `long` to `double`, and correctly rounded.
`boolean` `equals(Object obj)`
`float` `floatValue()` Returns the value of this `UnsignedLong` as a `float`, analogous to a widening primitive conversion from `long` to `float`, and correctly rounded.
`int` `hashCode()`
`int` `intValue()` Returns the value of this `UnsignedLong` as an `int`.
`long` `longValue()` Returns the value of this `UnsignedLong` as a `long`.
`UnsignedLong` `multiply(UnsignedLong val)` Returns the result of multiplying this and `val`.
`UnsignedLong` `remainder(UnsignedLong val)` Returns the remainder of dividing this by `val`.
`UnsignedLong` `subtract(UnsignedLong val)` Returns the result of subtracting this and `val`.
`String` `toString()` Returns a string representation of the `UnsignedLong` value, in base 10.
`String` `toString(int radix)` Returns a string representation of the `UnsignedLong` value, in base `radix`.
`static UnsignedLong` `valueOf(BigInteger value)` Returns a `UnsignedLong` representing the same value as the specified `BigInteger` .
`static UnsignedLong` `valueOf(String string)` Returns an `UnsignedLong` holding the value of the specified `String`, parsed as an unsigned `long` value.
`static UnsignedLong` `valueOf(String string, int radix)` Returns an `UnsignedLong` holding the value of the specified `String`, parsed as an unsigned `long` 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 UnsignedLong ZERO

### ONE

    public static final UnsignedLong ONE

### MAX_VALUE

    public static final UnsignedLong MAX_VALUE

Method Detail

### asUnsigned

    public static UnsignedLong asUnsigned(long value)

  Returns an `UnsignedLong` that, when treated as signed, is equal to `value`. The inverse operation is `longValue()`.

  Put another way, if `value` is negative, the returned result will be equal to `2^64 + value`; otherwise, the returned result will be equal to `value`.

### valueOf

    public static UnsignedLong valueOf(BigInteger value)

  Returns a `UnsignedLong` representing the same value as the specified `BigInteger` . This is the inverse operation of `bigIntegerValue()`.

  Throws:
    `IllegalArgumentException` - if `value` is negative or `value >= 2^64`

### valueOf

    public static UnsignedLong valueOf(String string)

  Returns an `UnsignedLong` holding the value of the specified `String`, parsed as an unsigned `long` value.

  Throws:
    `NumberFormatException` - if the string does not contain a parsable unsigned `long` value

### valueOf

    public static UnsignedLong valueOf(String string,
                                       int radix)

  Returns an `UnsignedLong` holding the value of the specified `String`, parsed as an unsigned `long` value in the specified radix.

  Throws:
    `NumberFormatException` - if the string does not contain a parsable unsigned `long` value, or `radix` is not between `Character.MIN_RADIX` and `Character.MAX_RADIX`

### add

    public UnsignedLong add(UnsignedLong val)

  Returns the result of adding this and `val`. If the result would have more than 64 bits, returns the low 64 bits of the result.

### subtract

    public UnsignedLong subtract(UnsignedLong val)

  Returns the result of subtracting this and `val`. If the result would be negative, returns the low 64 bits of the result.

### multiply

    public UnsignedLong multiply(UnsignedLong val)

  Returns the result of multiplying this and `val`. If the result would have more than 64 bits, returns the low 64 bits of the result.

### divide

    public UnsignedLong divide(UnsignedLong val)

  Returns the result of dividing this by `val`.

### remainder

    public UnsignedLong remainder(UnsignedLong val)

  Returns the remainder of dividing this by `val`.

### intValue

    public int intValue()

  Returns the value of this `UnsignedLong` as an `int`.

  Specified by:
    `intValue` in class `Number`

### longValue

    public long longValue()

  Returns the value of this `UnsignedLong` as a `long`. This is an inverse operation to `asUnsigned(long)`.

  Note that if this `UnsignedLong` holds a value `>= 2^63`, the returned value will be equal to `this - 2^64`.

  Specified by:
    `longValue` in class `Number`

### floatValue

    public float floatValue()

  Returns the value of this `UnsignedLong` as a `float`, analogous to a widening primitive conversion from `long` to `float`, and correctly rounded.

  Specified by:
    `floatValue` in class `Number`

### doubleValue

    public double doubleValue()

  Returns the value of this `UnsignedLong` as a `double`, analogous to a widening primitive conversion from `long` to `double`, and correctly rounded.

  Specified by:
    `doubleValue` in class `Number`

### bigIntegerValue

    public BigInteger bigIntegerValue()

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

### compareTo

    public int compareTo(UnsignedLong o)

  Specified by:
    `compareTo` in interface `Comparable<UnsignedLong>`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### equals

    public boolean equals(@Nullable
                          Object obj)

  Overrides:
    `equals` in class `Object`

### toString

    public String toString()

  Returns a string representation of the `UnsignedLong` value, in base 10.

  Overrides:
    `toString` in class `Object`

### toString

    public String toString(int radix)

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

Copyright © 2010-2012. All Rights Reserved.