Today I Run

[CS] 2의 보수

조핑구 2024. 5. 8. 15:25

2의 보수란? → 양수를 음수로, 음수를 양수로 바꿔주는 연산.


컴퓨터는 덧셈연산 밖에 못한다!

10 : 0000 1010 → ~10 : 1111 0101 (NOT 연산)

10의 보수 +1 : 1111 0110

10 + 10의 보수 : 1 0000 0000 → 1은 오버플로로 삭제됨 = 0


1의 보수 → 컴퓨터에서 1의 보수는 1과 0을 반전시켜주는 역할을 한다.

0001 0111 → 23

1110 1000 → 23의 1의보수

1111 1111 → 결과: 256

1111 1111의 보수 : 0000 0000 → 1의 보수

1의 보수만을 사용해 연산을 할 시 비트반전을 너무 많이 해야한다는 단점이 있다. 그래서 2의 보수 등장!

1의 보수를 사용하면 2n번의 비트반전.

2의 보수를 사용하면 4비트의 공간에선 4번의 비트반전과 +1연산, 8비트에서는 8번의 비트반전과 +1 연산이 필요하다. ⇒ n+1번의 비트반전.