Битовые манипуляции (начиная с C++20)
Материал из ru.cppreference.net
Предоставляет несколько шаблонов функций для доступа, управления и обработки отдельных битов и последовательностей битов.
Определён в заголовке
<bit> | |
Определён в пространстве имён
std | |
(C++20) |
переинтерпретирует объектное представление одного типа как представление другого (шаблон функции) |
(C++23) |
меняет порядок байтов в заданном целочисленном значении (шаблон функции) |
Целые степени 2 |
|
|
(C++20)
|
проверяет, является ли число целой степенью
2
(шаблон функции) |
|
(C++20)
|
находит наименьшую целочисленную степень
2
не меньшую заданного значения
(шаблон функции) |
|
(C++20)
|
находит наибольшую целочисленную степень
2
не превышающую заданное значение
(шаблон функции) |
|
(C++20)
|
находит минимальное количество битов, необходимое для представления заданного значения
(шаблон функции) |
Сдвиг (начиная с C++29) | |
(C++29) |
сдвиг влево без возможности неопределённого поведения (шаблон функции) |
(C++29) |
сдвиг вправо без возможности неопределённого поведения (шаблон функции) |
Вращение |
|
|
(C++20)
|
вычисляет результат побитового поворота влево
(шаблон функции) |
|
(C++20)
|
вычисляет результат побитового поворота вправо
(шаблон функции) |
Подсчет |
|
|
(C++20)
|
подсчитывает количество последовательных
0
битов, начиная со старшего бита
(шаблон функции) |
|
(C++20)
|
подсчитывает количество последовательных
1
битов, начиная со старшего бита
(шаблон функции) |
|
(C++20)
|
подсчитывает количество последовательных
0
битов, начиная с младшего бита
(шаблон функции) |
|
(C++20)
|
подсчитывает количество последовательных
1
битов, начиная с младшего бита
(шаблон функции) |
|
(C++20)
|
подсчитывает количество
1
битов в беззнаковом целом числе
(шаблон функции) |
Перестановка (начиная с C++29) | |
(C++29) |
обратный порядок битов в целочисленном значении (шаблон функции) |
(C++29) |
повторяет/расширяет битовый шаблон заданной длины (шаблон функции) |
(C++29) |
сжимает биты операнда с использованием маски (PEXT) (шаблон функции) |
(C++29) |
расширяет биты операнда с использованием маски (PDEP) (шаблон функции) |
Порядок байтов |
|
|
(C++20)
|
указывает порядок байтов скалярных типов
(enum) |
Примечания
| Макрос проверки функциональности | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_bit_cast |
201806L |
(C++20) | std::bit_cast |
__cpp_lib_bitops |
201907L |
(C++20) | Битовые операции |
202606L |
(C++29) | Битовая перестановка | |
__cpp_lib_int_pow2 |
202002L |
(C++20) | Целочисленные операции со 2 в степени |
__cpp_lib_byteswap |
202110L |
(C++23) | std::byteswap |
Смотрите также
|
Документация C
для
Bit manipulation
|