지금 < 부호있는 데이터형의 음수 / 오버플로우 >부분을 보고있습니다..
그걸 보면서 이해가 안되는게,
음수형이 되었을때,
그것을 어떻게 읽어야하느냐입니다..
가령, 정수 10을 2의 보수법으로 -10을 만들어보면,
1111 1111 1111 0110
위와 같이 되는데,
이걸보고 "혹시, 숫자0을 양수일때 1로보고 숫자를 계산하고 음수를 붙이면 되는게 아닐까~?" 생각했습니다.
그런데, 오버플로우를 보니
위의 사진의 맨밑에 음수로 변한것을
위에 말했던 0과 1을 바꿔서 생각하고 숫자를 구하면,
2^14 + 2^13 + ... + 2^0 = - (2^15 - 1)
ㄴ이렇게 되어야하는데,
이번에는 또 그렇지 않고
-(2^15)더군요..
c언어에서 부호있는 정수의 음수는 어떻게 읽어야하는건가요,,?
===============================================================
혹시 양수일때의 0과 1을 바꿔서 생각하되,
나온숫자의 크기에 +1을 해주어야하나요?
만약 그렇다면 왜 +1을 해주어야 할까요..?ㅜㅜ
댓글 달기