답변 1
6
%hhd 는 signed char 타입의 정수를 출력할 때 사용됩니다. 즉 1byte 크기의 정수를 출력할 때 사용합니다.
%d 👉 int. 즉 4byte(32bit) 로 표현한 정수를 출력하고자 할 때.
%hhd 👉 signed char. 즉 1byte(8bit) 로 표현한 정수를 출력하고자 할 때.
이런 차이가 있습니다.
예를 들어 숫자 5 를 %d 로 출력한다면 내부적으론 32자리 비트의 0000 0000 0000 0000 0000 0000 0000 0101 로 처리되고, %hhd로 출력한다면 내부적으론 8자리 비트의 0000 0101 로 처리 됩니다. 둘 다 십진수로 변환하면 5인건 똑같기 때문에 %d 로 실행해도 결과가 동일한 것입니다.
( 덧붙여서 char도 사실 내부적으로는 signed char 인, 즉 1byte 크기의 정수로 저장이 됩니다. char 변수를 출력할 땐 이 정수 값을 아스키 코드와 일치하는 문자로 출력해주는 것 뿐입니다.)