|
unsigned char ch = 255
printf("%d\n", ~ch);의 연산을 하면 -256이 출력이 된다.
그 이유는?
사실 -_-; 도저히 짱구굴려도.. 답이 안나와서요 ㅋㅋㅋ
255는 부호가 없는 관계로 1111 1111 -> 255의 결과값을 가지지만
~ 1111 1111 을 하게 되면 0000 0000이 되잖습니까?
그렇다면 0이 출력될것 같은데 -256이 출력되네요.
char로 강제형변환 하면 0이 표시되구요 -_-;;
부호비트에서 얘네들이 놀고있으면 이해하겠는데 부호비트도 0으로 같은데
어째서 char를 형변환하느냐 안하느냐에 따라 다른지 원.. -_ㅜ
갈켜주세여
|