0
정수를 문자로 저장하려고합니다.int를 char로 저장 하시겠습니까?
char i = 80;
printf("0x%x", i);
위 코드는 0x50 (1 바이트)를 표시합니다. 그러나 값이 128보다 크면 4 바이트 값을 인쇄합니다.
값이 128 (잉크 막 (82) 대신에 두 번째 예에서 ffffff82)보다 크면방법 I은 단지 1 바이트로 정수 값을 저장할 수
char i = 130;
printf("0x%x", i); // this prints 0xffffff82
?
'unsigned char i = 130; ' – Marian
'% x '형식 지정자는 16 진수 값을 인쇄합니다. 나는'i'가 승진되고 있다고 믿습니다. 그래서 여러분은 8 비트 옥텟이 아닌 정수를 출력하고 있습니다. 그것이 당신이'0xffffff82'를 보는 이유입니다. 'int' ->'char' truncations에 대해서도 걱정해야합니다 (일반적인 경우). – jww