Related Articles
BigIntegerMath floorPowerOfTwo() function | Guava | Java
• Last Updated : 15 Nov, 2018

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 BifIntegerMath.floorPowerOfTwo() method:

Example 1:

 `// 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 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
```

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :