인프런 커뮤니티 질문&답변

조민선님의 프로필 이미지
조민선

작성한 질문수

홍정모의 따라하며 배우는 C언어

3.10 문자형

%hhd

작성

·

1.4K

0

형식지정자 %hhd 대신 %d 를 사용하여도 실행이 되는데 %hhd 와 어떤 차이가 있는건가요?

답변 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 변수를 출력할 땐 이 정수 값을 아스키 코드와 일치하는 문자로 출력해주는 것 뿐입니다.)

조민선님의 프로필 이미지
조민선

작성한 질문수

질문하기