wintertreey 님의 블로그
보수, signed unsigned 본문
보수 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 |
[이산수학] 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 |