numeric_byteswap

numeric_byteswap (std::byteswap)

<bit> 헤더에 정의되어 있어요. 주어진 정수 값 n의 바이트를 뒤집어요. C++23부터 도입됐어요.

출처: cppreference

본문

template< class T >
constexpr T byteswap( T n ) noexcept;

(C++23부터)

주어진 정수 값 n의 바이트를 뒤집어요.

매개변수

  • n: 바이트를 뒤집을 정수 값

타입 요구사항

  • T는 정수 타입(integral)이어야 오버로드 해석에 참여해요.
  • T는 패딩 비트가 없어야 해요. 그렇지 않으면 프로그램은 ill-formed예요.

반환값

객체 표현이 n의 객체 표현의 바이트를 역순으로 나열한 타입 T의 정수 값.

주의 (Notes)

이 함수는 서로 다른 엔디언(byte order)의 데이터를 처리할 때 유용해요. 기능 테스트 매크로 __cpp_lib_byteswap(202110L, C++23)은 std::byteswap을 나타내요.

예제

#include <bit>
#include <cstdint>
#include <iostream>

int main()
{
    std::uint32_t v = 0x12345678;
    std::cout << std::hex << std::byteswap(v) << '\n';   // 0x78563412
}

빅·리틀 엔디언 변환이나 네트워크 바이트 순서 변환 등 역순 배치가 필요할 때 써요.

더 알아보기 (Learn more)

cppreference