| $Zero |
마이크로 컨트롤러에 대해선 잘 모르지만, 컴파일러에 사용한 옵션과 결과값의 연관성이 유추되어 답변 달아봅니다.
char 형 자료형은 8byte를 사용하는 자료형입니다 .
이중 1byte를 부호비트로 사용하기때문에 실제 표현 가능한 수는 -127~+128이 됩니다.
즉, 애초에 255란 값을 표현할 수 없는 자료형입니다.
근데 char형으로 255값을 표현할 수 있는 방법이 있습니다.
부호비트까지 정수표현에 사용하라는 unsigned를 선언하시면 됩니다.
unsigned char일 경우 0~255의 값을 표현할 수 있게 됩니다.
컴파일러 옵션으로 주신 문구에 unsigned char이 있는걸로보아 char형을 기본적으로 unsigned char로 보겠다는 의미 같습니다.
-1의 경우 부호비트를 포함한 8비트가 전부 11111111의 값입니다. 이 값을 부호비트가 무시되는 unsigned char로 넣으면 255가 됩니다.
따라서 위에서 사용된 char는 unsigned char로 인식되었다고 볼 수 있겠네요 |
2013/10/16 |
|