모든 기록
Computer Architecture · 2026.09.09

3주차 - 음수는 왜 2의 보수로 표현할까

1의 보수는 0이 2개 생긴다는 한계에서 출발해서, 2의 보수가 왜 덧셈 회로 하나로 뺄셈까지 처리하는지, 그리고 carry를 버려도 되는 이유를 Modulo 연산 관점으로 정리.

3주차 - 음수는 왜 2의 보수로 표현할까 대표 이미지

음수를 어떻게 표현하지?

음수를 어떻게 표현하지?

  • 1의 보수: 양수의 모든 비트를 반전함. 만들기가 쉽지만 0이 2개임.
  • 2의 보수: 비트를 전부 반전하고 거기에 1을 더함. 덧셈 회로 하나로 뺄셈까지 처리할 수 있음.

실제 컴퓨터 시스템에서는 2의 보수가 사용된다.

1의 보수는 만들기 쉽지만 0이 2개다

1의 보수는 양수의 모든 비트를 반전함.

+5 → 0101

반전 시, 1010이 됨

장점

  • 만들기가 쉽다

단점

  • 1의 보수는 0이 2개임
    • 0000 → 1111
    • +0 ⇒ 0000
    • 0 ⇒ 1111

2의 보수는 비트를 전부 반전하고 1을 더한다

방법

  • 비트를 전부 반전
  • 거기에 1을 더함

왜 1을 더하나

  • 덧셈 회로 하나로 뺄셈까지 처리할 수 있기 때문

3을 2의 보수로 만들면

  • 3은
0011 (원래 값)
1100 (반전)
1101 (+1)

이 경우 1101에서 맨 앞이 부호를 나타내며 -3으로 읽히게 된다.

5 + (-3)은 2가 됨

5+ (-3) 을 표현하면

5는

0101
  • -3은
1101

5 + (-3)은

1101
0101

1 0010이 되고 여기서 가장 앞의 carry를 버리게 되면 2가 됨

Carry를 버려도 되는 이유는 2의 보수 표현 자체가 특정 비트 수를 기준으로 Modulo 연산 시스템 위에서 작동하기 때문임

고정된 크기의 비트 공간 n 비트 시스템 내에서 표현 가능한 값의 개수는 총 2의 n 승 개가 되는데

수학적으로 2의 보수 덧셈은 2의 n 승으로 나눈 나머지를 구하는 Modulo 연산과 완전히 동일하다.

예시)

  • 12시간짜리 아날로그 시계를 생각해보면 13시는 결국 1시가 됨
  • 또한 4시에서 5시간 전으로 연산을 하더라도 마찬가지로 11시가 되어 12시간이라는 범위 내에서 알맞은 값이 나오게 된다.

이어 읽으면 좋은 기록

3주차 - HDD는 왜 느리고 SSD는 왜 빠를까

HDD는 기계적으로, SSD는 반도체로 동작한다는 차이에서 출발해서 Platter/Track/Sector 구조와 NAND Page/Block 구조, Wear Leveling까지 정리.