1의 보수란 어떤 수를 커다란 2의 거듭제곱수-1에서 빼서 얻은 이진수이다. 또는 비트를 반전시켜 얻을 수 있다. 1의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다. 주어진 이진수와 자리수가 같고 모든 자리가 1인 수에서 주어진 수를 빼서 얻은 수가 1의 보수이다. 혹은 주어진 이진수의 모든 자리의 숫자를 반전(0을 1로, 1을 0으로)시키면 1의 보수를 얻을 수 있다.

예시 편집

8자리의 이진수 01001011(십진수로 75)의 1의 보수를 구하면 아래와 같다.

     11111111 (8+1=9자리)
  -) 01001011 (8자리)
  -----------
     10110100 (8자리)
     01001011 의 모든 자리의 수를 반전시킨다.
     10110100 (이것을 1의 보수라고 부른다)


1의 보수로 계산을 하는 경우 한 자리가 더 길어진 경우에는 캐리 값을 결과값에 더한다.

     00010011 (19)
  +) 11111100 (-3; 3에 대한 1의 보수)
  -----------
    100001111 (15; 1의 Carry 발생)
  +) 00000001 (Carry)
  -----------
     00010000 (16; 최종 결과)

부호 전환은 2의 보수보다 쉽지만 덧셈과 뺄셈은 어렵다.

참고 편집

1의 보수는 영어로 "ones' complement"인데, 이를 직역하면 "1의 보수"가 된다(소유격을 나타내는 ' 기호가 s뒤에 있음에 유의). 즉, 1의 보수를 다르게 표현하자면 "여러 개의 1들로만 이루어진 수(111....)에 대한 보수"라고 할 수 있다.

같이 보기 편집