Language/C
Signed / Unsigned 의 비교
TechNote.kr
2019. 8. 24. 11:18
728x90
signed 의 경우 양/음수를 표현할 수 있는 변수형으로 알고 있고, unsigned 의 경우 양수만 표현할 수 있는 것으로 막연히 알고 있었는데, 코드로 실제 비교해 보았다.
#include <stdio.h>
int main()
{
signed char a = 0xFF;
unsigned char b = 0xFF;
printf("a = %d\n", a);
printf("b = %d\n", b);
}
[결과]
a = -1
b = 255
2진수 (16진수) | 10진수 (signed char) | 10진수 (unsigned char) |
1111 1111 (0xFF) | -1 | 255 |
signed char 의 경우
이진수 1111 1111 중 MSB (Most Significant Bit) 는 부호 표현을 위해 사용된다.
이에 2의 보수법으로 표현된 음수를 의미하고 있으므로 -1 을 의미한다.
unsigned char 의 경우
이진수 1111 1111 는 모두 숫자 표현에 사용된다.
이에 255 를 의미한다.
728x90