개발공부/컴퓨터구조

[Computer Architecture] 1's complement and 2's complement (1의 보수와 2의 보수)

개발자 찐빵이 2021. 10. 31. 20:11
728x90
반응형

보수

두 수의 합이 진법의 밑수(N)가 되게 하는 수

1의 보수

각 자릿수의 값이 모두 1인 수에서 주어진 2진수를 빼면 1의 보수를 얻을 수 있다.
ex) 2진수 1010의 1의 보수는 0101이다.

2의 보수

1의 보수에 1을 더한 값이다.
ex) 2진수 1010에 대한 2의 보수를 구하려면 2진수 1010에 대한 1의 보수 0101을 구한 다음 1을 더해 0110을 얻는다.

뺄셈에서의 보수 활용

컴퓨터 내부에서는 덧셈만 가능하기 때문에 뺄셈은 보수를 이용해 덧셈으로 바꾼다.

1의 보수 뺄셈

예시 1

111(2) - 110(2) = 111(2) + 001(2) = 1000(2)
1000(2)에서 최상위 비트를 지우고 1을 더하므로 답은 1(2)

예시 2

100(2) - 110(2) = 100(2) + 001(2) = 101(2)
101(2)에서 다시 1의 보수를 취하므로 답은 10(2)

2의 보수 뺄셈

예시 1

111(2) - 110(2) = 111(2) + 010(2) = 1001(2)
1001(2)에서 최상위 비트를 지우므로 답은 1(2)

예시 2

100(2) - 110(2) = 100(2) + 010(2) = 110(2)
110(2)에서 다시 2의 보수를 취하므로 답은 010(2)

보수 적용 표

참고 사이트

1의 보수와 2의 보수를 이해하자!

반응형