Заголовочный файл стандартной библиотеки <bit>
Материал из cppreference.com
Данный заголовок является частью библиотеки числовых данных.
Types | |
(C++20) |
указывает порядок байтов скалярных типов (перечисление) |
Functions | |
(C++20) |
переинтерпретирует объектное представление одного типа как другого (шаблон функции) |
(C++23) |
переворачивает байты в заданном целочисленном значении (шаблон функции) |
(C++20) |
проверяет, является ли число целой степенью двойки (шаблон функции) |
(C++20) |
находит наименьшую целую степень двойки не меньшей заданного значения (шаблон функции) |
(C++20) |
находит наибольшую целую степень двойки, не превышающую заданное значение (шаблон функции) |
(C++20) |
находит наименьшее количество битов, необходимых для представления данного значения (шаблон функции) |
(C++20) |
вычисляет результат побитового циклического сдвига влево (шаблон функции) |
(C++20) |
вычисляет результат побитового циклического сдвига вправо (шаблон функции) |
(C++20) |
подсчитывает количество последовательных нулевых битов, начиная со старшего бита (шаблон функции) |
(C++20) |
подсчитывает количество последовательных единичных битов, начиная со старшего бита (шаблон функции) |
(C++20) |
подсчитывает количество последовательных нулевых битов, начиная с младшего бита (шаблон функции) |
(C++20) |
подсчитывает количество последовательных единичных битов, начиная с младшего бита (шаблон функции) |
(C++20) |
подсчитывает количество единичных битов в беззнаковом целом числе (шаблон функции) |
Synopsis
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 T bit_width(T x) noexcept;
// rotating
template<class T>
[[nodiscard]] constexpr T rotl(T x, int s) noexcept;
template<class T>
[[nodiscard]] 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;
// endian
enum class endian {
little = /* see description */,
big = /* see description */,
native = /* see description */
};
}