◐ Shell
clean mode source ↗

Заголовочный файл стандартной библиотеки <bit> — cppreference.com

Материал из cppreference.com

Данный заголовок является частью библиотеки числовых данных.

Types

(C++20)

указывает порядок байтов скалярных типов
(перечисление) [править]

Functions

(C++20)

переинтерпретирует объектное представление одного типа как другого
(шаблон функции) [править]

(C++23)

переворачивает байты в заданном целочисленном значении
(шаблон функции) [править]
проверяет, является ли число целой степенью двойки
(шаблон функции) [править]

(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 */
  };
}