powerof2(3) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | STANDARDS | CAVEATS | SEE ALSO | COLOPHON

powerof2(3)             Library Functions Manual             powerof2(3)

NAME         top

       powerof2 - test if a value is a power of 2

LIBRARY         top

       Standard C library (libc)

SYNOPSIS         top

       #include <sys/param.h>

       int powerof2(x);

DESCRIPTION         top

       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.

RETURN VALUE         top

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

STANDARDS         top

       BSD.

CAVEATS         top

       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.

SEE ALSO         top

       stdc_bit_ceil(3), stdc_bit_floor(3)

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.9.1.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2024-06-26.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org

Linux man-pages 6.9.1          2024-05-02                    powerof2(3)