2의 보수, 1의 보수 에 대한 이해

컴퓨터는 음수의 표현을 2의 보수법으로 표현한다. 2의 보수라는 말은 two's complement라는 말인데, 그다지 뜻이 와 닿지는 않는다. 왜 그럴까 하는 원리에 대해서 생각하게 해주는 책은 보지 못했다. 뭐 그래서 나름대로 그 원리를 정리해보려 한다.

내가 어린 시절에는 주산학원이 있었다. 나도 주산학원을 다녔었는데, '보수'라는 단어를 주산을 배울 때도 많이 썼는데, 뜻은 모르지만 뭐가 보수인지 어렴풋이 짐작은 했다. 즉 2의 보수라고 하면 8, 3의 보수는 7, 4의 보수는 6... 이런 식이다. 일반화 하자면 X의 보수는 더해서 10이 되는 수를 뜻한다.



그런데 내가 컴퓨터를 배우면서 2의보수라는 의미가 헷갈렸었다. 내가 알고 있는 2의 보수는 8이고, 주산을 배울 때의 맥락에서는 2진수에서는 1의 보수밖에 더 있을까?

컴퓨터 공학적인 의미의 보수의 의미는 비슷하지만 용어 해석이 좀 틀리다. 사실 용어해석이라기 보다는 나름대로 이해한 방법이라고 해두겠다.

위에서 말한 내용은 참고용으로만 기억해 두자.

 

2의 보수란 뜻은 2진수 X를 보완 해 준다는 의미인데, 

예를 들어 110의 2의 보수라 하면 010고, 110 + 010 = 1000이 된다. (2진수 110을 보완해 주는 수)

101 또는 111 가 1000이 되기 위해 더해지는 수 011, 001이 각각의 2의 보수가 된다. 


여기서 2+8=10일때 8이 보수가 되는 의미와 같다고 생각하면 된다.

즉 110 + 010 =1000 이고, 여기서 010이 보수가 된다.

 

그럼 1의 보수는 무엇인가?

1의 보수는 2의 보수를 좀 더 쉽게 쓰기 위해서 사용된다. 더해서 모두 1로 채워지는 수라는 뜻이다. 단순히 모든 비트들을 반전하면 1의 보수가 나온다.

110의 1의 보수는 001이다.

그리고 1의 보수와 2의 보수 간에는 다음이 성립한다.



1의 보수는 비트를 단순히 반전만 하면 되기 때문에 매우 효율적이다. 그래서 2의 보수를 한번에 구하는 방법보다, 1의 보수를 구한 후 1을 더하는 방법을 사용한다.

 

한줄 정리 : 컴퓨터의 음수 표현은 2의 보수법을 사용하는데, 2의 보수를 구하는 방법은 1의 보수 + 1로 간단하게 구할 수 있고, 1의 보수를 구하는 법은 비트를 반전시키면 된다.

이 댓글을 비밀 댓글로
    • 2015.10.17 10:11
    비밀댓글입니다
    • 안녕하세요
    • 2015.11.28 11:55
    헷갈렸는데 덕분에 자세히 알고 갑니다
    감사합니다
    즐거운 하루되세요~
  1. 디지털회로 처음 공부하는데 이제야 이해가 되네요 ㅠ 보수란 말이 감이 안왔는데..감사합니다!
    • ayong8
    • 2017.03.30 18:15
    너무 감사드려요.
    이해가 팍팍 되었습니다!!
    • 와~ 짱임
    • 2017.03.30 19:14
    감사합니다. ㅠㅠ
    • 사랑이
    • 2017.08.02 17:38
    안녕하세요? 질문이 있어서 댓글 납깁니다 ^^
    우리가 10진법에서 보수를 구할때 기준이... 더해서 10을 만들어 주는 숫자잖아요~
    8의 보수는 2, 5의 보수는 5 이런식으로요..
    설명에 2진법 1000을 만들어 주는 숫자가 보수라고 하셨는데
    기준이 왜 1000 인가요?
    2진법 1000이면 10진법으로는 8인데, 혹시 꼭 1000으로 만들어야 하는 이유(?)가 있나요?
    보수의 개념이나 구하는 법은 알것 같은데.. 그 기준이 왜(!) 그렇게 되는지 모르겠어요ㅠ
    혹시 비트의 개념과 연관이 있는건지...
    독학 중인데 무지 어렵네요 ㅎㅎ 알려주세요ㅠㅠ
    • 아닙니다.
      2진수를 1000으로 만드는게 아니라, 위에서 예로든 수가 110이기 때문에 여기에 010을 더해서 1000이 나온다는 뜻입니다.
      만약 1110에서 2 보수를 구한다는 뜻은 더해서 10000이 나오는 수를 뜻하겠죠.
      이렇게 원래의 수보다 한자리 높은 수(중에 가장 작은 수)를 구한다는 뜻입니다.
    • 흑흑
    • 2017.10.06 18:07
    천재...감사해요ㅠㅠㅠ
    • 갤럭시원
    • 2018.01.16 15:14
    감사합니다. 잘 배우고 갑니다. 어떤 책을 읽다가 잘 몰라서 버벅거렸는데 확실히 깨우치고 갑니다. 좋은 하루 되십시오.
    • 그냥 대충 쓴 글인데 많은 분들이 도움을 받는 것 같아서 기분 좋습니다.~~ㅎㅎㅎ
    • 감사합니다
    • 2018.02.25 18:37
    책에서 자세히 설명이 안나와있었는데 여기서 잘 설명해주시네요 !!
  2. 이분 천재신가요