Drill

ProblemsJava › patterns

Is it a power of two

easypatternsBit manipulationMathJava

A page allocator only caps sizes at exact powers of two, and a build report flags a size that slipped through.

isPowerOfTwo(amount: int) → bool

Java needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

boolean isPowerOfTwo(int amount) {
    
}

Worked examples

CallResult
isPowerOfTwo(1)true
isPowerOfTwo(2)true
isPowerOfTwo(4)true
isPowerOfTwo(6)false

Hint

A power of two has exactly one bit set. Clearing the lowest set bit with n & (n - 1) turns it to zero.

Reference solution in Java
boolean isPowerOfTwo(int amount) {
    return amount > 0 && (amount & (amount - 1)) == 0;
}

The same problem in another language

More patterns problems in Java