Interface UInt64Value<T extends UInt64Value<T>>
- Type Parameters:
T- The concrete type of the value.
- All Superinterfaces:
Comparable<T>
- All Known Implementing Classes:
BaseUInt64Value,UInt64
A UInt64Value is an unsigned integer value whose value can range between 0 and 2^64-1.
This interface defines operations for value types with a 64-bit precision range. The methods
provided by this interface take parameters of the same type (and also long. This provides
type safety by ensuring calculations cannot mix different UInt64Value types.
Where only a pure numerical 64-bit value is required, UInt64 should be used.
It is strongly advised to extend BaseUInt64Value rather than implementing this
interface directly. Doing so provides type safety in that quantities of different units cannot be
mixed accidentally.
-
Method Summary
Modifier and TypeMethodDescriptionadd(long value) Returns a value that is(this + value).Returns a value that is(this + value).default TaddExact(long value) Returns a value that is(this + value).default TReturns a value that is(this + value).addMod(long value, long modulus) Returns a value equivalent to((this + value) mod modulus).Returns a value equivalent to((this + value) mod modulus).Returns a value equivalent to((this + value) mod modulus).default intReturns the number of bits following and including the highest-order ("leftmost") one-bitdivide(long value) Returns a value that is(this / value).Returns a value that is(this / value).default booleanfitsInt()Returns true if this value fits an int.default booleanfitsLong()Returns true if this value fits a long.default intintValue()Returns this value as an int.default booleanisZero()Returns true if this is 0.mod(long modulus) Returns a value that is(this mod modulus).Returns a value that is(this mod modulus).multiply(long value) Returns a value that is(this * value).Returns a value that is(this * value).multiplyMod(long value, long modulus) Returns a value that is((this * value) mod modulus).multiplyMod(long value, UInt64 modulus) Returns a value that is((this * value) mod modulus).multiplyMod(T value, UInt64 modulus) Returns a value that is((this * value) mod modulus).default intReturns the number of zero bits preceding the highest-order ("leftmost") one-bitpow(long exponent) Returns a value that is(this<sup>exponent</sup> mod 2<sup>64</sup>)Returns a value that is(this<sup>exponent</sup> mod 2<sup>64</sup>)subtract(long value) Returns a value that is(this - value).Returns a value that is(this - value).default TsubtractExact(long value) Returns a value that is(this - value).default TsubtractExact(T value) Returns a value that is(this - value).default BigIntegerReturns this value as a BigIntegerorg.apache.tuweni.bytes.BytestoBytes()Returns the value as bytes.default StringReturns the decimal representation of this value as a String.default StringThis value represented as an hexadecimal string.default longtoLong()Returns this value as a long.org.apache.tuweni.bytes.BytesReturns the value as bytes without any leading zero bytes.default StringReturns this value represented as a minimal hexadecimal string (without any leading zero)toUInt64()Convert this value to aUInt64.Methods inherited from interface java.lang.Comparable
compareTo
-
Method Details
-
isZero
default boolean isZero()Returns true if this is 0.- Returns:
- True if this is the value 0.
-
add
Returns a value that is(this + value).- Parameters:
value- The amount to be added to this value.- Returns:
this + value
-
addExact
Returns a value that is(this + value).- Parameters:
value- the amount to be added to this value- Returns:
this + value- Throws:
ArithmeticException- if the result of the addition overflows
-
add
Returns a value that is(this + value).- Parameters:
value- The amount to be added to this value.- Returns:
this + value
-
addExact
Returns a value that is(this + value).- Parameters:
value- the amount to be added to this value- Returns:
this + value- Throws:
ArithmeticException- if the result of the addition overflows
-
addMod
Returns a value equivalent to((this + value) mod modulus).- Parameters:
value- The amount to be added to this value.modulus- The modulus.- Returns:
(this + value) mod modulus- Throws:
ArithmeticException-modulus== 0.
-
addMod
Returns a value equivalent to((this + value) mod modulus).- Parameters:
value- The amount to be added to this value.modulus- The modulus.- Returns:
(this + value) mod modulus- Throws:
ArithmeticException-modulus== 0.
-
addMod
Returns a value equivalent to((this + value) mod modulus).- Parameters:
value- The amount to be added to this value.modulus- The modulus.- Returns:
(this + value) mod modulus- Throws:
ArithmeticException-modulus≤ 0.
-
subtract
Returns a value that is(this - value).- Parameters:
value- The amount to be subtracted from this value.- Returns:
this - value
-
subtractExact
Returns a value that is(this - value).- Parameters:
value- the amount to be subtracted to this value- Returns:
this - value- Throws:
ArithmeticException- if the result of the subtraction overflows
-
subtract
Returns a value that is(this - value).- Parameters:
value- The amount to be subtracted from this value.- Returns:
this - value
-
subtractExact
Returns a value that is(this - value).- Parameters:
value- the amount to be subtracted to this value- Returns:
this - value- Throws:
ArithmeticException- if the result of the subtraction overflows
-
multiply
Returns a value that is(this * value).- Parameters:
value- The amount to multiply this value by.- Returns:
this * value
-
multiply
Returns a value that is(this * value).- Parameters:
value- The amount to multiply this value by.- Returns:
this * value- Throws:
ArithmeticException-value< 0.
-
multiplyMod
Returns a value that is((this * value) mod modulus).- Parameters:
value- The amount to multiply this value by.modulus- The modulus.- Returns:
(this * value) mod modulus- Throws:
ArithmeticException-value< 0 ormodulus== 0.
-
multiplyMod
Returns a value that is((this * value) mod modulus).- Parameters:
value- The amount to multiply this value by.modulus- The modulus.- Returns:
(this * value) mod modulus- Throws:
ArithmeticException-value< 0 ormodulus== 0.
-
multiplyMod
Returns a value that is((this * value) mod modulus).- Parameters:
value- The amount to multiply this value by.modulus- The modulus.- Returns:
(this * value) mod modulus- Throws:
ArithmeticException-value< 0 ormodulus≤ 0.
-
divide
Returns a value that is(this / value).- Parameters:
value- The amount to divide this value by.- Returns:
this / value- Throws:
ArithmeticException-value== 0.
-
divide
Returns a value that is(this / value).- Parameters:
value- The amount to divide this value by.- Returns:
this / value- Throws:
ArithmeticException-value≤ 0.
-
pow
Returns a value that is(this<sup>exponent</sup> mod 2<sup>64</sup>)This calculates an exponentiation over the modulus of
2^64.Note that
exponentis anUInt64rather than of the typeT.- Parameters:
exponent- The exponent to which this value is to be raised.- Returns:
this<sup>exponent</sup> mod 2<sup>64</sup>
-
pow
Returns a value that is(this<sup>exponent</sup> mod 2<sup>64</sup>)This calculates an exponentiation over the modulus of
2^64.- Parameters:
exponent- The exponent to which this value is to be raised.- Returns:
this<sup>exponent</sup> mod 2<sup>64</sup>
-
mod
Returns a value that is(this mod modulus).- Parameters:
modulus- The modulus.- Returns:
this mod modulus.- Throws:
ArithmeticException-modulus== 0.
-
mod
Returns a value that is(this mod modulus).- Parameters:
modulus- The modulus.- Returns:
this mod modulus.- Throws:
ArithmeticException-modulus≤ 0.
-
fitsInt
default boolean fitsInt()Returns true if this value fits an int.- Returns:
- True if this value fits a java
int(i.e. is less or equal toInteger.MAX_VALUE).
-
intValue
default int intValue()Returns this value as an int.- Returns:
- This value as a java
intassuming it is small enough to fit anint. - Throws:
ArithmeticException- If the value does not fit anint, that is if!fitsInt().
-
fitsLong
default boolean fitsLong()Returns true if this value fits a long.- Returns:
- True if this value fits a java
long(i.e. is less or equal toLong.MAX_VALUE).
-
toLong
default long toLong()Returns this value as a long.- Returns:
- This value as a java
longassuming it is small enough to fit along. - Throws:
ArithmeticException- If the value does not fit along, that is if!fitsLong().
-
toBigInteger
Returns this value as a BigInteger- Returns:
- This value as a
BigInteger.
-
toHexString
This value represented as an hexadecimal string.Note that this representation includes all the 8 underlying bytes, no matter what the integer actually represents (in other words, it can have many leading zeros). For a shorter representation that don't include leading zeros, use
toShortHexString().- Returns:
- This value represented as an hexadecimal string.
-
toShortHexString
Returns this value represented as a minimal hexadecimal string (without any leading zero)- Returns:
- This value represented as a minimal hexadecimal string (without any leading zero).
-
toUInt64
UInt64 toUInt64()Convert this value to aUInt64.- Returns:
- This value as a
UInt64.
-
toBytes
org.apache.tuweni.bytes.Bytes toBytes()Returns the value as bytes.- Returns:
- The value as bytes.
-
toMinimalBytes
org.apache.tuweni.bytes.Bytes toMinimalBytes()Returns the value as bytes without any leading zero bytes.- Returns:
- The value as bytes without any leading zero bytes.
-
numberOfLeadingZeros
default int numberOfLeadingZeros()Returns the number of zero bits preceding the highest-order ("leftmost") one-bit- Returns:
- the number of zero bits preceding the highest-order ("leftmost") one-bit in the binary representation of this value, or 64 if the value is equal to zero.
-
bitLength
default int bitLength()Returns the number of bits following and including the highest-order ("leftmost") one-bit- Returns:
- The number of bits following and including the highest-order ("leftmost") one-bit in the binary representation of this value, or zero if all bits are zero.
-
toDecimalString
Returns the decimal representation of this value as a String.- Returns:
- the decimal representation of this value as a String.
-