Language unsigned와 signed

황제낙엽 2016.10.24 19:11 조회 수 : 176

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까지 표현할 수 있다.

 

왜 부호비트 하나가 있는지, 없는지에 따라 표현할 수 있는 수가 달라지는 이유를 알기 위해서는 메모리를 봐야 한다.

번호 제목 글쓴이 날짜 조회 수
공지 Software Development Trend (with Java) 황제낙엽 2024.01.19 592
93 0xFFFFFFFF의 값은 왜 -1인가? 황제낙엽 2016.10.24 326
» unsigned와 signed 황제낙엽 2016.10.24 176
91 MSDN 라이선스 종류와 혜택 file 황제낙엽 2016.07.12 143
90 컴퓨터와 인간의 대화[20]-전각 문자와 반각 문자 황제낙엽 2016.04.22 233
89 컴퓨터와 인간의 대화[19]-인텔 HEX 황제낙엽 2016.04.22 123
88 컴퓨터와 인간의 대화[18]-베이스64 황제낙엽 2016.04.22 134
87 컴퓨터와 인간의 대화[17]-Surrogate Pair, Supplementary Characters file 황제낙엽 2016.04.22 127
86 컴퓨터와 인간의 대화[16]-UTF-16 황제낙엽 2016.04.22 118
85 컴퓨터와 인간의 대화[15]-UTF-8 황제낙엽 2016.04.22 131
84 컴퓨터와 인간의 대화[14]-euc(Extended UNIX Code) 황제낙엽 2016.04.22 122
83 컴퓨터와 인간의 대화[13]-char set 황제낙엽 2016.04.22 127
82 컴퓨터와 인간의 대화[12]-character encoding 황제낙엽 2016.04.22 87
81 컴퓨터와 인간의 대화[11]-byte 2 황제낙엽 2016.04.22 143
80 컴퓨터와 인간의 대화[10]-byte 1 황제낙엽 2016.04.22 189
79 컴퓨터와 인간의 대화[9]-EBCDIC [엡시딕] 황제낙엽 2016.04.22 164
78 컴퓨터와 인간의 대화[8]-ASCII 4 황제낙엽 2016.04.22 131
77 컴퓨터와 인간의 대화[7]-ASCII 3 황제낙엽 2016.04.22 103
76 컴퓨터와 인간의 대화[6]-ASCII 2 황제낙엽 2016.04.22 142
75 컴퓨터와 인간의 대화[5]-ASCII 1 황제낙엽 2016.04.22 102
74 컴퓨터와 인간의 대화[4]-wchar(wide character) 황제낙엽 2016.04.22 96