ILOG2(3) | Library Functions Manual | ILOG2(3)

# NAME

`ilog2` — integer base-2 logarithm

# SYNOPSIS

`#include <sys/bitops.h>`

int
`ilog2`(size x);

# DESCRIPTION

For positive x, the `ilog2`() macro returns the integer part of the base-2 logarithm of x; that is, `floor`(`log_2`(x));. If n `=` `ilog2`(x), then n is the largest integer such that 2**n `<=` x; in other words, `ilog2`() returns the largest integer to which 2 can be raised to obtain a value at most x.

The type of the input parameter must be unsigned.

If x is a constant expression, then so is `ilog2`(x).

# ERRORS

`ilog2`() returns -1 when x is zero.

# SEE ALSO

bitops(3), ffs(3), ilogb(3), log2(3), imax(9), powerof2(9)

# HISTORY

The `ilog2`() macro first appeared in NetBSD 5.0.

November 5, 2021 | NetBSD 11.0