0xffui8은 C++에서 특정 타입의 정수 리터럴을 나타내기 위한 표기법입니다. 이 표현은 주로 C++20 표준에서 사용됩니다.
의미
0xff
16진수 리터럴입니다. 0x는 16진수 리터럴임을 나타내며, ff는 16진수로 255를 의미합니다.
u
u는 리터럴을 unsigned int 타입으로 지정하는 접미사입니다.
i8
i8는 C++20에서 추가된 std::int8_t 타입(8비트 부호 있는 정수)로 변환하는 것을 나타냅니다.
하지만 여기서 ui8는 std::uint8_t 타입(8비트 부호 없는 정수)로 변환하는 의미로 해석됩니다.
결론
0xffui8는 C++20 표준에서 0xff라는 16진수 리터럴을 8비트 부호 없는 정수(std::uint8_t) 타입으로 변환한 값을 의미합니다. 따라서 0xffui8는 uint8_t 타입으로 값이 255인 리터럴을 나타냅니다.
#include <iostream>
#include <cstdint>
int main() {
std::uint8_t value = 0xffui8;
std::cout << static_cast<int>(value) << std::endl; // 출력: 255
return 0;
}
여기서 std::cout에서 출력할 때 value를 int로 캐스팅한 이유는 std::uint8_t는 기본적으로 unsigned char 타입이기 때문에, 정수로 출력하려면 명시적으로 캐스팅해 주어야 하기 때문입니다.
반응형