Namespaces
Variants

std::bit_reverse

Из ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Утилиты программы
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Реляционные операторы (устарело в C++20)
 
 
Возвращает <bit>
template< class T >
constexpr T bit_reverse( T x ) noexcept;
с обратным порядком битов.

Эта перегрузка участвует в разрешении перегрузки только если x является беззнаковым целым типом (то есть

, T, unsigned char, unsigned short, unsigned int, unsigned long, или расширенным беззнаковым целым типом). unsigned long longСодержание

x

- значение беззнакового целого типа Возвращаемое значение

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

xПримечания

Функция обычно реализуется с помощью встроенной функции (intrinsic), такой как Clang's

, и имеет тот же эффект, что и инструкция __builtin_bitreverse на процессорах ARM. rbitМакрос проверки возможности

ЗначениеСтандарт Возможность (C++29) Перестановки битов
__cpp_lib_bitops 202606L Пример Запустить этот код

Смотрите также

#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() {}

(C++20)

rotr
(C++20)
byteswap
(C++23)