인수가 부호없는 문자임을 hh알리는 데 사용할 수 있습니다 printf. 사용은 0제로 패딩을 얻을 수 및 22로 폭을 설정 x또는 X이하 / 대문자 진수 문자.
uint8_t a = 0x0a;
printf("%02hhX", a); // Prints "0A"
printf("0x%02hhx", a); // Prints "0x0a"
편집 : 독자가 이것이 '올바른'형식 지정자가 아니라는 2501의 주장에 대해 우려한다면 printf링크를 다시 읽으라고 제안 합니다. 구체적으로 특별히:
% c가 int 인수를 예상하더라도 가변 함수가 호출 될 때 발생하는 정수 승격 때문에 char를 전달하는 것이 안전합니다.
고정 너비 문자 유형 (int8_t 등)에 대한 올바른 변환 사양은 헤더 <cinttypes>(C ++) 또는 <inttypes.h>(C)에 정의되어 있습니다 (PRIdMAX, PRIuMAX 등은 % jd, % ju 등과 동의어 임) .
부호있는 대 부호없는 것에 대한 그의 요점은이 경우 값이 항상 양수 여야하고 부호있는 정수에 쉽게 맞아야하므로 중요하지 않습니다. 어쨌든 서명 된 16 진수 형식 지정자는 없습니다.
편집 2 : ( "당신이 틀 렸음을 인정할 때"판) :
311 페이지 (PDF 329) 에서 실제 C11 표준 을 읽으면 다음 을 찾을 수 있습니다.
HH : 지정하는 다음가 d, i, o, u, x, 또는 X변환 지시자는 적용 signed char또는 unsigned char인수 (인수는 정수 프로모션에 따른 증진 된 것이지만, 그 값으로 변환한다 signed char또는 unsigned char인쇄하기 전에); 또는 다음 n변환 지정자가 signed char인수 에 대한 포인터에 적용됩니다 .
"\xc0\xc0abc123"