sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
extra_vars6 |
프로그래밍에서의 unsigned는 부호가 없는. 즉 음수를 표현하지 않겠다는 의미이고 signed는 부호가 있는. 즉 음수를 표현하겠다는 의미이다.
signed의 경우 음수를 사용하게 되는데 메모리에는 0,1으로만 이용해서 저장됨으로 부호 비트라는게 따로 필요한데 이것을 MSB라고 한다. 이 MSB라는 부호 비트가 0이면 양수 1이면 음수이다.
그러나 unsigned에서는 MSB가 없어서 양수만 처리하게 됨으로 음수는 표현할 수 없는 대신 양수를 2배 만큼 표현할 수 있다.
2바이트(16비트)인 short의 경우 signed의 경우 -32768~32767까지 표현할 수 있다.
총 합해서 2^16만큼인 65536 만큼이다.
(abs(음수)+양수+1 (1을 더하는 이유는 0 때문이다. 0은 제외해서 더했기 때문.))
unsigned 의 경우 0~65535까지 표현할 수 있다.
왜 부호비트 하나가 있는지, 없는지에 따라 표현할 수 있는 수가 달라지는 이유를 알기 위해서는 메모리를 봐야 한다.