'signed unsigned'에 해당되는 글 1건

  1. 2013.10.07 Signed와 Unsigned의 차이.

Signed와 Unsigned의 차이.

JAVA 2013. 10. 7. 22:56
728x90

자바나, C나, C++이나, 자바스크립트나, 어디서든 내가 공부할때마다 종종 나오는게 signed, unsigned라는 키워드였다.


늘 글을 볼때마다 대충 이해하고 넘어갔는데 다른 공부하다가 또 나오면 막상 이게 뭐였더라.........


도저히 안되겠다 싶어. 정리좀 해야겠다.


나에게 이해하기 쉽게 하도록 나는 '음수를 표현하고 안하고의 차이'다 라고 머리에 이제 집어 넣었다.


Signed : 부호를 가지는 값 (양수, 음수의 구별 OK)

Unsigned : 부호를 가지지 않는 값 (오직 양수 OK)


정리하자면 이렇다. 그럼 약간 세부적으로 들어가서 한번 알아보자


signed char

unsigned char


이렇게 각각 8비트 타입이 있다고 하자. 


signed음수표현까지 포함을 하기때문에 2의 보수 체계를 사용하고 있고 부호를 구별하는 부호 비트인 MSB가 필요하다.(MSB가 0이면 양수, 1이면 음수)


unsigned는 저런 부호 비트가 없기때문에 음수는 표현하지 못하지만, 그만큼의 양수의 범위를 두 배로 더 늘리는 역할을 하게 된다.


즉 char 타입은 8비트이기때문에


signed char은 -128~127의 범위 표현이 가능하게 되고

unsigned char은 0~255의 범위 표현이 가능하게 된다.




숫자 3을 1바이트를 2진수로 한번 기록해보자. (3은 2진수로 00000011 이 된다.)


Unsigned는 다음과 같이 할당된다. 

 0

 0

 0

 0

 0

 0

 1

 1


Signed는 음수를 표현해야 하기 때문에 제일 앞 비트인 MSB를 하나 소비한다.

(3인 양수라 MSB가 0 이지만 음수라면 1이 될것이다.)

 0

 0

 0

 1





728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침