powerof2(3) Library Functions Manual powerof2(3)

powerof2 - test if a value is a power of 2

Standard C library (libc)

#include <sys/param.h>
int powerof2(x);

This macro returns true if x is a power of 2, and false otherwise.

0 is considered a power of 2. This can make sense considering wrapping of unsigned integers, and has interesting properties.

True or false, if x is a power of 2 or not, respectively.

BSD.

The arguments may be evaluated more than once.

Because this macro is implemented using bitwise operations, some negative values can invoke undefined behavior. For example, the following invokes undefined behavior: powerof2(INT_MIN);. Call it only with unsigned types to be safe.

stdc_bit_ceil(3), stdc_bit_floor(3)

2024-05-02 Linux man-pages 6.9.1