Заголовок стандартной библиотеки <bit> (C++20)
Этот заголовок входит в библиотеку общих утилит и предоставляет средства для доступа к отдельным битам и битовым последовательностям, их обработки и изменения.
Типы |
|
|
(C++20) | указывает порядок байтов скалярных типов (перечисление) |
Функции |
|
|
(C++20) | интерпретирует представление объекта одного типа как представление объекта другого типа (шаблон функции) |
|
(C++23) | меняет порядок байтов заданного целочисленного значения на обратный (шаблон функции) |
|
(C++20) | проверяет, является ли число целой степенью 2 (шаблон функции) |
|
(C++20) | находит наименьшую целую степень 2, не меньшую заданного значения (шаблон функции) |
|
(C++20) | находит наибольшую целую степень 2, не превышающую заданное значение (шаблон функции) |
|
(C++20) | находит минимальное количество битов, необходимое для представления заданного значения (шаблон функции) |
|
(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) | сжимает биты операнда с помощью маски (PEXT) (шаблон функции) |
|
(C++29) | расширяет биты операнда с помощью маски (PDEP) (шаблон функции) |
Обзор
namespace std {
// bit_cast
template<class To, class From>
constexpr To bit_cast(const From& from) noexcept;
// byteswap
template <class T>
constexpr T byteswap(T value) noexcept;
// integral powers of 2
template<class T>
constexpr bool has_single_bit(T x) noexcept;
template<class T>
constexpr T bit_ceil(T x);
template<class T>
constexpr T bit_floor(T x) noexcept;
template<class T>
constexpr int bit_width(T x) noexcept;
// shifting
template<class T, class S>
constexpr T shl(T x, S s) noexcept;
template<class T, class S>
constexpr T shr(T x, S s) noexcept;
// rotating
template<class T>
constexpr T rotl(T x, int s) noexcept;
template<class T>
constexpr T rotr(T x, int s) noexcept;
// counting
template<class T>
constexpr int countl_zero(T x) noexcept;
template<class T>
constexpr int countl_one(T x) noexcept;
template<class T>
constexpr int countr_zero(T x) noexcept;
template<class T>
constexpr int countr_one(T x) noexcept;
template<class T>
constexpr int popcount(T x) noexcept;
// permutation
template<class T>
constexpr T bit_reverse(T x) noexcept;
template<class T>
constexpr T bit_repeat(T x, int l);
template<class T>
constexpr T bit_compress(T x, T m) noexcept;
template<class T>
constexpr T bit_expand(T x, T m) noexcept;
// endian
enum class endian {
little = /* see description */,
big = /* see description */,
native = /* see description */
};
}
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header/bit