Interface UInt32Value<T extends UInt32Value<T>>
- Type Parameters:
T- The concrete type of the value.
- All Superinterfaces:
Comparable<T>
- All Known Implementing Classes:
BaseUInt32Value,UInt32
A UInt32Value is an unsigned integer value whose value can range between 0 and 2^32-1.
This interface defines operations for value types with a 32-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 UInt32Value types.
Where only a pure numerical 32-bit value is required, UInt32 should be used.
It is strongly advised to extend BaseUInt32Value 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(int value) Returns a value that is(this + value).Returns a value that is(this + value).default TaddExact(int 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 intProvides the number of bits following and including the highest-order ("leftmost") one-bitdivide(int 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 is this is 0.mod(int modulus) Returns a value that is(this mod modulus).Returns a value that is(this mod modulus).multiply(int value) Returns a value that is(this * value).Returns a value that is(this * value).multiplyMod(int value, int modulus) Returns a value that is((this * value) mod modulus).multiplyMod(int value, UInt32 modulus) Returns a value that is((this * value) mod modulus).multiplyMod(T value, UInt32 modulus) Returns a value that is((this * value) mod modulus).default intProvides 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>32</sup>)Returns a value that is(this<sup>exponent</sup> mod 2<sup>32</sup>)subtract(int value) Returns a value that is(this - value).Returns a value that is(this - value).default TsubtractExact(int value) Returns a value that is(this - value).default TsubtractExact(T value) Returns a value that is(this - value).default BigIntegerProvides this value as a BigInteger.org.apache.tuweni.bytes.BytestoBytes()Provides 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.BytesProvides the value as bytes without any leading zero bytesdefault StringReturns this value represented as a minimal hexadecimal string (without any leading zero).toUInt32()Convert this value to aUInt32.Methods inherited from interface java.lang.Comparable
compareTo
-
Method Details
-
isZero
default boolean isZero()Returns true is 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>32</sup>)This calculates an exponentiation over the modulus of
2^32.Note that
exponentis anUInt32rather than of the typeT.- Parameters:
exponent- The exponent to which this value is to be raised.- Returns:
this<sup>exponent</sup> mod 2<sup>32</sup>
-
pow
Returns a value that is(this<sup>exponent</sup> mod 2<sup>32</sup>)This calculates an exponentiation over the modulus of
2^32.- Parameters:
exponent- The exponent to which this value is to be raised.- Returns:
this<sup>exponent</sup> mod 2<sup>32</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
Provides 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).
-
toUInt32
UInt32 toUInt32()Convert this value to aUInt32.- Returns:
- This value as a
UInt32.
-
toBytes
org.apache.tuweni.bytes.Bytes toBytes()Provides the value as bytes.- Returns:
- The value as bytes.
-
toMinimalBytes
org.apache.tuweni.bytes.Bytes toMinimalBytes()Provides the value as bytes without any leading zero bytes- Returns:
- The value as bytes without any leading zero bytes.
-
numberOfLeadingZeros
default int numberOfLeadingZeros()Provides 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 32 if the value is equal to zero.
-
bitLength
default int bitLength()Provides 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.
-