C

[C] 부호를 고려하는 타입 이진수 범위

bunbun2 2023. 7. 5. 14:03

char 타입과  short, int 등 타입들은 unsigned가 아니기에 이진수에서 부호를 고려한다

 

 

예를들어 1byte인 char 자료형의 경우

1111 1111 ~ 0111 1111

 

의 범위고, 맨 왼쪽자리의 이진수가 1로 음수, 양수를 표현한다

 

그냥 십진수로 범위를 간단히 풀어서 보면

-128 ~ 127 인데, 1111 1111이 왜 -128인가 하고 생각이 났었음

일반적인 이진수의 경우는 1111 1111 이 127이니까.

 

근데 조금만 생각해보니

0 000 0000은 0이지만, 

1 000 0000은 -1이기 때문에 음수쪽이 하나 더 많은게 맞다.

 

그림으로 그리면 이런느낌