나름의 생각을 설명으로 풀어쓴 글입니다.실제 이론과 내용은 이와 다를 수 있음을 감안하고 읽어주시면 감사하겠습니다.보충해주는 수10진법에서) 3에 대한 10의 보수는 73을 10으로 만들기 위해서는 7이 필요하다는 의미입니다.인터넷에서 1의 보수에 대한 설명을 쉽게 0과 1을 바꾼 값으로 설명하고 있습니다.
1001의 1의 보수 -> 01102진수 1001이 있을 때 위에서 설명한 정의를 적용하면 다음과 같습니다.
2진법에서) 1001에 대한 1의 보수는 0110다1001을 1로 만들기 위해서는 0110가 필요하다.1001+0110은 1이 아니기 때문에 1001을 1로 만든다는 문장은 매우 어색합니다. 1로 만든다는 걸 모든 자리수의 값을 1로 만든다로 바꿔보았습니다.1001을 1111로 만들기 위해서는 0110이 필요하다.A가 111...11이 되기 위해 필요한 수 B이다. 111...11 - A는 A에서 0과 1의 자리를 바꾼 값과 같다.2의 보수는 1의 보수 +1로 설명하고 있습니다.1001의 2의 보수 -> 0111(0110+1)2진법에서) 1001을 2로 만들기 위해서는 0111이 필요하다.2로 만든다는 걸 다음 자릿수로 만든다로 표현해 바꿔보겠습니다.1001을 10000으로 만들기 위해0111이 필요하다.2진법에서 2라는 숫자는 존재하지 않고, 2를 표현하려면 자릿수를 변경시켜야 하기 때문에 자릿수를 변경시킨다는 의미가 어색하지 않습니다.A가 100...0(A보다 한자리 더 많은 수)이 되 위해 필요한 수 B이다.100...00은 A+A의 1의 보수+1이다.A+A의 1의 보수 = 111...11이기 때문A의 1의 보수+1을 묶어 A의 2의 보수로 볼 수 있다.보수는 뺄셈(음수)을 위해 도입된 개념이다.A-B를 A+(-B)로 바꾸어 계산해야 합니다.부호비트를 통해 음수를 표현하기도 합니다. 비트의 가장 왼쪽 값은 부호를 나타내는 칸으로 활용하기로 약속하는 것이죠.0이면 양수다1이면 음수다부호비트가 무조건적인건 아닙니다. 1000이 있을 때 이를 8로 볼 것인지 -1로 볼 것인지는 경우에 따라 다릅니다.1의 보수, 2의 보수 둘 다 가능합니다.1의 보수를 활용한 계산에는 1의 보수를 구한 뒤 +1을 더하는 과정이 필요합니다. 이는 결국 2의 보수를 계산하는 것과 동일한 행위이므로 사실상 1의 보수를 활용한 뺄셈과 2의 보수를 활용한 뺄셈은 같습니다. A-B)빼는 수(B)의 2의 보수를 구합니다.(B')A와 빼는 수의 2의 보수(B')를 더합니다.A-B의 결과입니다.A+B')의 2의 보수를 구한 값에 -부호를 붙여준 값이 A-B의 결과값입니다.(B>A인 경우입니다)