Open In App

BigIntegerMath floorPowerOfTwo() function | Guava | Java

Improve
Improve
Like Article
Like
Save
Share
Report

The method floorPowerOfTwo(BigInteger x) of Guava’s BigIntegerMath class returns the largest power of two less than or equal to x. This is equivalent to BigInteger.valueOf(2).pow(log2(x, FLOOR)).
Syntax: 
 

public static BigInteger floorPowerOfTwo(BigInteger x)

Parameters: This method takes the BigInteger x as parameter whose floor power of two is to be found.
Return Value: This method returns the largest power of two less than or equal to x.
Exceptions: This method throws IllegalArgumentException if x <= 0.
Below examples illustrates the BigIntegerMath.floorPowerOfTwo() method:
Example 1:
 

Java




// Java code to show implementation of
// floorPowerOfTwo() method
// of Guava's BigIntegerMath class
 
import java.math.*;
import com.google.common.math.BigIntegerMath;
 
class GFG {
 
    // Driver code
    public static void main(String args[])
    {
        BigInteger n1 = BigInteger.valueOf(10);
 
        // Using floorPowerOfTwo(BigInteger x) method
        // of Guava's BigIntegerMath class
        BigInteger
            ans1
            = BigIntegerMath.floorPowerOfTwo(n1);
 
        System.out.println("Largest power of 2 less "
                           + "than or equal to " + n1
                           + " is: " + ans1);
 
        BigInteger n2 = BigInteger.valueOf(127);
 
        // Using floorPowerOfTwo(BigInteger x) method
        // of Guava's BigIntegerMath class
        BigInteger
            ans2
            = BigIntegerMath.floorPowerOfTwo(n2);
 
        System.out.println("Largest power of 2 less "
                           + "than or equal to " + n2
                           + " is: " + ans2);
    }
}


Output: 
 

Largest power of 2 less than or equal to 10 is: 8
Largest power of 2 less than or equal to 127 is: 64

Example 2: To show IllegalArgumentException
 

Java




// Java code to show implementation of
// floorPowerOfTwo(BigInteger x) method
// of Guava's BigIntegerMath class
 
import java.math.*;
import com.google.common.math.BigIntegerMath;
 
class GFG {
 
    // Driver code
    public static void main(String args[])
    {
 
        try {
            BigInteger n1 = BigInteger.valueOf(-3);
 
            // Using floorPowerOfTwo(BigInteger x) method
            // of Guava's BigIntegerMath class
            // This should raise "IllegalArgumentException"
            // as x <= 0
            BigInteger
                ans1
                = BigIntegerMath.floorPowerOfTwo(n1);
 
            System.out.println("Largest power of 2 less "
                               + "than or equal to " + n1
                               + " is: " + ans1);
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}


Output: 
 

Exception: java.lang.IllegalArgumentException: x (-3) must be > 0

Reference: https://google.github.io/guava/releases/21.0/api/docs/com/google/common/math/BigIntegerMath.html#floorPowerOfTwo-java.math.BigInteger-
 



Last Updated : 26 Jul, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads