wintertreey 님의 블로그

보수, signed unsigned 본문

CS

보수, signed unsigned

wintertreey 2025. 6. 13. 14:52

보수 complement


어떤 수를 기준 값에서 빼서 만들어지는 차이
 
보수의 예시
10진수일 경우
 
3의 보수 : 7 
33의 보수 : 77
 
우리는 이 보수를 구하기 위해 10^n - 주어진 값3,33 = 주어진 값의 보수7,77 이런식의 사고의 흐름으로 보수를 구한다. 그러나 프로그래밍에서는 덧셈만 가능하다. 따라서 10^n  + (3,33)= 주어진 값의 보수7,77 이런식으로 덧셈으로 뺄셈을 처리한다.
  
프로그래밍은 2진수로 되어있으니 2진수로 봐보자.

 
10012+01102=100002 에서 오버플로우 잘라내면 0000 -> 0 이 된다. 이는 
10012+(10012)=0 이랑 같다고 볼 수 있다.
10012의 2의 보수는 10012의 음수가 되는것이다.  
 
이 때 이런 의문이 생긴다. 
10012 = 9인데? -7이라고?
 
 
10012은 그냥 이진수 해석하면 9가 맞다. 그러나 2의 보수 체계로 해석하면 -7이 된다.
즉 같은 1001₍₂₎라도 해석 방식(vs)에 따라 값이 달라진다.

이진수 signed 2의 보수  unsigned 부호 없음
0111 +7 7
1001 -7 9

 

4비트 2의 보수 표현범위: -8 ~ +7

2진수 signed 부호 있음 unsigned 부호 없음 
0000 0 0
0001 1 1
... ... ...
0111 7 7
1000 -8 8
1001 -7 9
1010 -6 10
... ... ...
1111 -1 15





https://changel.tistory.com/278#:~:text=%EB%B3%B4%EC%88%98%EB%9E%80%2C%20'%EB%91%90%20%EC%88%98%EC%9D%98,%ED%91%9C%ED%98%84%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%EC%84%9C%20%EA%B3%A0%EC%95%88%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4.

 

[이산수학] 1의 보수와 2의 보수 그리고 계산

작년 컴퓨터 구조 시간부터 디지털 공학...그리고 이산수학까지 질리도록 배워온 1의 보수와 2의 보수 개념을 다시 한 번 정리하려고 한다. ● 정수 표현 컴퓨터는 N개의 비트를 이용해 2^N개의 정

changel.tistory.com

https://coding-factory.tistory.com/653

 

[수학] 보수 계산법 1,2 + 필요한 이유

보수란 보수는 보충을 해주는 수를 의미합니다. 현재의 숫자에서 자릿수가 1단계 올라갈 수 있는 수가 몇인지를 구하시면 됩니다. 보수 구하기 예시 10진수 1의 보수 : 1+9=10 -> 1의 보수 = 9 3의 보

coding-factory.tistory.com

 

'CS' 카테고리의 다른 글

RSA 암호화  3 2025.07.24
HTTP HTTPS 보안정책  1 2025.07.11
IP, Domain, DNS  0 2025.05.09