Namespaces
Variants

Standard library header <bit> (C++20)

From cppreference.net
Standard library headers

Этот заголовок является частью numeric библиотеки.

Типы

(C++20)
указывает порядок байтов скалярных типов
(перечисление)

Функции

(C++20)
переинтерпретирует представление объекта одного типа как представление другого типа
(шаблон функции)
(C++23)
обращает порядок байтов в заданном целочисленном значении
(шаблон функции)
проверяет, является ли число целой степенью 2
(шаблон функции)
(C++20)
находит наименьшую целую степень 2 не меньшую заданного значения
(шаблон функции)
(C++20)
находит наибольшую целую степень 2 не большую заданного значения
(шаблон функции)
(C++20)
находит минимальное количество битов, необходимое для представления заданного значения
(шаблон функции)
(C++20)
вычисляет результат побитового циклического сдвига влево
(шаблон функции)
(C++20)
вычисляет результат побитового циклического сдвига вправо
(шаблон функции)
подсчитывает количество последовательных 0 битов, начиная со старшего бита
(шаблон функции)
(C++20)
подсчитывает количество последовательных 1 битов, начиная со старшего бита
(шаблон функции)
подсчитывает количество последовательных 0 битов, начиная с младшего бита
(шаблон функции)
(C++20)
подсчитывает количество последовательных 1 битов, начиная с младшего бита
(шаблон функции)
(C++20)
подсчитывает количество 1 битов в беззнаковом целом числе
(шаблон функции)

Синопсис

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;
  // целочисленные степени 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;
  // вращение
  template<class T>
    constexpr T rotl(T x, int s) noexcept;
  template<class T>
    constexpr T rotr(T x, int s) noexcept;
  // подсчет
  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;
  // порядок байтов
  enum class endian {
    little = /* см. описание */,
    big    = /* см. описание */,
    native = /* см. описание */
  };
}