Манипуляции с битами (начиная с C++20)
Содержит несколько шаблонов функций для доступа, манипулирования и обработки отдельных битов и последовательностей битов.
Определено в заголовочном файле <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) (шаблон функции) |
Порядок байтов (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