BigIntegerMath log2() function | Guava | Java
The method log2(BigInteger x, RoundingMode mode) of Guava’s BigIntegerMath class returns the base-2 logarithm of x, rounded according to the specified rounding mode.
public static int log2(BigInteger x, RoundingMode mode)
Parameters: This method takes the following parameters:
- x: The BigInteger number whose log is to be found.
- mode: The rounding mode for calculating the log of 2.
Return Value: This method returns the base-2 logarithm of x, rounded according to the specified rounding mode.
Exceptions: This method throws the following exceptions:
- IllegalArgumentException: if x <= 0.
- ArithmeticException: if mode is RoundingMode.UNNECESSARY and x is not a power of 2.
|CEILING||Rounding mode to round towards positive infinity.|
|DOWN||Rounding mode to round towards zero.|
|FLOOR||Rounding mode to round towards negative infinity.|
|HALF_DOWN||Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round down.|
|HALF_EVEN||Rounding mode to round towards the “nearest neighbor” unless both neighbors are equidistant, in which case, round towards the even neighbor.|
|HALF_UP||Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round up.|
|UNNECESSARY||Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.|
|UP||Rounding mode to round away from zero.|
Below examples illustrates the BigIntegerMath.log2() method:
Log base 2 of 1024 with rounding mode HALF_EVEN = 10 Log base 2 of 15 with rounding mode HALF_DOWN = 1
Example 2: To show IllegalArgumentException
Exception: java.lang.IllegalArgumentException: x (-5) must be > 0