C 마이크로프로세서 프로그래밍/Unsigned
signed와 unsigned는 정수형의 부호를 사용할 것인지를 규정한다. char와 int와 결합하여 부호를 결정한다. unsigned을 사용하면 부호없이 양수 만을 사용한다. 따라서 음수의 표현은 불가능하다.
signed
+/-signed는 C/C++ 프로그램 언어에서 정수형 변수 중 부호를 갖는 변수를 선언 한다. 정수형 중 음수는 2의 보수 체계를 사용하므로 이 키워드에 의해 부호를 사용할 수 있도록 변수 선언할 수 있다. 그러나 정수형의 변수에서 unsigned가 없으면 음수를 사용할 수 있는 부호를 갖는 정수형 된다. 따라서 프로그램에서는 이 키워드는 많이 사용은 하지 않는다.
unsigned
+/-unsigned는 C/C++ 언어에서 사용되는 지정자로 정수형과 같이 사용되어 부호 비트를 제거해 저장 가능한 양수 범위를 두배로 늘이는 역할을 한다. char와 int의 signed 정수형 변수에서 MSB가 부호 비트이다. 1이면 음수이고 0이면 양수이다. 그러나 unsigned을 사용하면 음수를 사용하지 않겠다는 의미 이므로 부호 비트가 필요 없다. 따라서 이진수와 같은 십진수가 된다.
unsigned char
+/-8비트 정수형 변수 선언 char와 결합하여 선언하면 부호 비트가 필요 없으므로 0 ~ 255 범위를 갖는다.
10진수 | 2진수 |
---|---|
255 | 1111 1111 |
254 | 1111 1110 |
253 | 1111 1101 |
... | ... |
1 | 0000 0001 |
0 | 0000 0000 |