Bit manipulation (since C23)

From cppreference.com
< c‎ | numeric

Functions

Defined in header <stdbit.h>
counts the number of consecutive 0 bits, starting from the most significant bit
(type-generic function macro)
counts the number of consecutive 1 bits, starting from the most significant bit
(type-generic function macro)
counts the number of consecutive 0 bits, starting from the least significant bit
(type-generic function macro)
counts the number of consecutive 1 bits, starting from the least significant bit
(type-generic function macro)
finds the first position of 0 bit, starting from the most significant bit
(type-generic function macro)
finds the first position of 1 bit, starting from the most significant bit
(type-generic function macro)
finds the first position of 0 bit, starting from the least significant bit
(type-generic function macro)
finds the first position of 1 bit, starting from the least significant bit
(type-generic function macro)
counts the number of 0 bits in an unsigned integer
(type-generic function macro)
counts the number of 1 bits in an unsigned integer
(type-generic function macro)
checks if a number is an integral power of 2
(type-generic function macro)
finds the smallest number of bits needed to represent the given value
(type-generic function macro)
finds the largest integral power of 2 not greater than the given value
(type-generic function macro)
finds the smallest integral power of 2 not less than the given value
(type-generic function macro)

Macro constants

Defined in header <stdbit.h>
indicates the endianness of scalar types
(macro constant)

References

  • C23 standard (ISO/IEC 9899:2024):
  • 7.18 Bit and byte utilities <stdbit.h>

See also

C++ documentation for Bit manipulation