Spec-Zone.ru › C++

std::bit_reverse

Определён в заголовочном файле <bit>
template< class T >
constexpr T bit_reverse( T x ) noexcept;
(начиная с C++29)

Возвращает x с обратным порядком битов.

Эта перегрузка участвует в разрешении перегрузки только в том случае, если T является беззнаковым целочисленным типом (то есть unsignedchar, unsignedshort, unsignedint, unsignedlong, unsignedlonglong или расширенным беззнаковым целочисленным типом).

Параметры

x - значение беззнакового целочисленного типа

Возвращаемое значение

x с обратным порядком битов.

Примечания

Обычно функция реализуется с помощью встроенной функции, например __builtin_bitreverse компилятора Clang, и имеет тот же эффект, что и инструкция rbit на процессорах ARM.

Макрос проверки поддержки возможностей Значение Стандарт Возможность
__cpp_lib_bitops 202607L (C++29) Битовые перестановки

Пример

#include <bit>
#include <cstdint>

static_assert(
    std::bit_reverse(
        std::uint8_t{0b1010'0011}) ==
        std::uint8_t{0b1100'0101} and
    std::bit_reverse(
        std::uint16_t{0b1010'0011}) ==
        std::uint16_t{0b1100'0101'0000'0000}
);

int main() {}

См. также

rotl
(C++20)
вычисляет результат побитового вращения влево
(шаблон функции)
rotr
(C++20)
вычисляет результат побитового вращения вправо
(шаблон функции)
byteswap
(C++23)
изменяет порядок байтов заданного целочисленного значения на обратный
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/bit_reverse

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API