왜 printf("%c ", 2293552);
이 0
으로 인쇄됩니까?% c와 ASCII 코드가 혼동 됨
ASCII 값은 0에서 127까지입니다. 이것은 순환적인 것이어야한다는 것을 알고 있지만 명확한 설명이 필요합니다. 고마워요
왜 printf("%c ", 2293552);
이 0
으로 인쇄됩니까?% c와 ASCII 코드가 혼동 됨
ASCII 값은 0에서 127까지입니다. 이것은 순환적인 것이어야한다는 것을 알고 있지만 명확한 설명이 필요합니다. 고마워요
숫자 2293552
은 0x22ff30
에 해당합니다. printf
을 ASCII로 해석하면 '0'
의 코드 인을 포함하는 마지막 8 비트를 제외한 모든 비트가 무시됩니다. C99 표준에서
7.19.1.6.8
-%c
: 더l
길이 수정이 없으면, int 인수는unsigned char
로 변환되고, 그 결과 문자가 기록됩니다.
가능성 있음 %c
은 인수의 하위 바이트 인 2293552 & 255 = 48 = '0'
만을 사용하고 있습니다.
감사합니다! 그것은 이해할 수있었습니다. –
하아! 당신은 나를 때려 눕히지 만 표준 견적으로 당신을 이겼습니다 : D (10k 만) –
감사합니다. 그리고 추가 지원 정보에 대해 다시 한번 감사드립니다. –
@ 대니얼 피셔 오 예, 보았습니다. – dasblinkenlight