C언어 기본

컴퓨터의 음수

홍박스 2021. 7. 21. 15:31
728x90

컴퓨터는 음수의 덧셈을 한다.

 

10 + (?) = 0

? -> -10

0000 0101 = 10

1111 1011 = -10

 

5 + (?) = 0

? -> -5

 

다시 말해 컴퓨터는 음수를 더했을때 0이 되는 아이를 음수로 정의한다.

 

0111 1111 = 127

그럼 -127은?

127 + (?) = 0

1000 0001

 

그래서 동일한 값이 채워져있어도 해석의 차이에 따라서 변화된다.

언사인드 int 이라면 255라고 읽혀지지만

사인드라면 음수로 읽는다. 

 

예를들면 나에겐 아버지이지만

할아버지에게는 아들인것과 비슷하다.

 

unsigned char c = -1

c -> 255

 

signed char c = 128

c -> -1

 

생각해보기

2의 보수법

0000 0010 -> 2

1111 1101 +1 -> 1111 1110 ->   -2

728x90