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
60 REST API 제대로 알고 사용하기 황제낙엽 2021.06.02 130
59 locale (로캘, 로케일) 황제낙엽 2021.03.19 112
58 [REST API] HTTP METHOD 종류 황제낙엽 2021.01.14 174
57 [Deno] TypeScript를 실행하기 위한 Command-line 런타임 황제낙엽 2021.01.14 100
56 어린이, 청소년용 프로그램 입문 황제낙엽 2017.05.03 166
55 컴퓨터는 음수를 2의 보수법으로 표현한다 file 황제낙엽 2016.10.24 843
54 변수를 unsigned int형 선언 0xffffffff 할당 결과가 -1이 되는 이유는? 황제낙엽 2016.10.24 486
53 0xFFFFFFFF의 값은 왜 -1인가? 황제낙엽 2016.10.24 326
» unsigned와 signed 황제낙엽 2016.10.24 176
51 컴퓨터와 인간의 대화[20]-전각 문자와 반각 문자 황제낙엽 2016.04.22 233
50 컴퓨터와 인간의 대화[19]-인텔 HEX 황제낙엽 2016.04.22 123
49 컴퓨터와 인간의 대화[18]-베이스64 황제낙엽 2016.04.22 134
48 컴퓨터와 인간의 대화[17]-Surrogate Pair, Supplementary Characters file 황제낙엽 2016.04.22 127
47 컴퓨터와 인간의 대화[16]-UTF-16 황제낙엽 2016.04.22 118
46 컴퓨터와 인간의 대화[15]-UTF-8 황제낙엽 2016.04.22 131
45 컴퓨터와 인간의 대화[14]-euc(Extended UNIX Code) 황제낙엽 2016.04.22 122
44 컴퓨터와 인간의 대화[13]-char set 황제낙엽 2016.04.22 127
43 컴퓨터와 인간의 대화[12]-character encoding 황제낙엽 2016.04.22 87
42 컴퓨터와 인간의 대화[11]-byte 2 황제낙엽 2016.04.22 143
41 컴퓨터와 인간의 대화[10]-byte 1 황제낙엽 2016.04.22 189