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
}
빅·리틀 엔디언 변환이나 네트워크 바이트 순서 변환 등 역순 배치가 필요할 때 써요.