Spec-Zone.ru › C++

Манипуляции с битами (начиная с C++20)

Содержит несколько шаблонов функций для доступа, манипулирования и обработки отдельных битов и последовательностей битов.

Определено в заголовочном файле <bit>
Определено в пространстве имен std
bit_cast
(C++20)
интерпретирует представление объекта одного типа как представление другого типа
(шаблон функции)
byteswap
(C++23)
меняет порядок байтов в заданном целочисленном значении на обратный
(шаблон функции)
Целые степени 2
has_single_bit
(C++20)
проверяет, является ли число целой степенью 2
(шаблон функции)
bit_ceil
(C++20)
находит наименьшую целую степень 2, которая не меньше заданного значения
(шаблон функции)
bit_floor
(C++20)
находит наибольшую целую степень 2, которая не больше заданного значения
(шаблон функции)
bit_width
(C++20)
находит наименьшее количество битов, необходимое для представления заданного значения
(шаблон функции)
Сдвиг (начиная с C++29)
shl
(C++29)
выполняет сдвиг влево без возможности возникновения неопределенного поведения
(шаблон функции)
shr
(C++29)
выполняет сдвиг вправо без возможности возникновения неопределенного поведения
(шаблон функции)
Циклический сдвиг
rotl
(C++20)
вычисляет результат побитового циклического сдвига влево
(шаблон функции)
rotr
(C++20)
вычисляет результат побитового циклического сдвига вправо
(шаблон функции)
Подсчет
countl_zero
(C++20)
подсчитывает количество последовательных битов 0, начиная со старшего значащего бита
(шаблон функции)
countl_one
(C++20)
подсчитывает количество последовательных битов 1, начиная со старшего значащего бита
(шаблон функции)
countr_zero
(C++20)
подсчитывает количество последовательных битов 0, начиная с младшего значащего бита
(шаблон функции)
countr_one
(C++20)
подсчитывает количество последовательных битов 1, начиная с младшего значащего бита
(шаблон функции)
popcount
(C++20)
подсчитывает количество битов 1 в беззнаковом целом числе
(шаблон функции)
Перестановка (начиная с C++29)
bit_reverse
(C++29)
инвертирует порядок битов в целом числе
(шаблон функции)
bit_repeat
(C++29)
повторяет/тиражирует битовый шаблон заданной длины
(шаблон функции)
bit_compress
(C++29)
сжимает биты операнда с помощью маски (PEXT)
(шаблон функции)
bit_expand
(C++29)
расширяет биты из операнда с помощью маски (PDEP)
(шаблон функции)
Порядок байтов (Endian)
endian
(C++20)
указывает порядок байтов для скалярных типов
(перечисление)

Примечания

Макрос проверки возможностей Значение Стандарт Функция
__cpp_lib_bit_cast 201806L (C++20) std::bit_cast
__cpp_lib_bitops 201907L (C++20) Битовые операции
202606L (C++29) Улучшенный сдвиг
202607L (C++29) Битовая перестановка
__cpp_lib_byteswap 202110L (C++23) std::byteswap
__cpp_lib_int_pow2 202002L (C++20) Операции со степенями двойки для целых чисел
__cpp_lib_stdbit_h 202603L (C++26) Заголовок совместимости <stdbit.h> для побитовых операций в C

Смотрите также

Документация по C для манипуляций с битами

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/bit

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API