기본 콘텐츠로 건너뛰기

라벨이 1의 보수인 게시물 표시

[matplotlib]quiver()함수

[python] 보수(complement)

보수(complement) 컴퓨터에서 음수를 직접적으로 표현할 수 없기 때문에 부호 비트를 지정하여 양수에 대한 음수는 2의 보수(tow's complement)를 사용하여 나타낼 수 있습니다. 보수는 어떤수를 보충하여 완전수를 만들게 하는 수로 1의 보수와 2의 보수 방법이 있으며 어떤수에 대응하는 음수의 이진수 표현은 2의 보수 방법을 적용합니다. 1의 보수 ⇒ 값의 반전, 즉 0 → 1, 1 → 0 예를 들어 4비트에서 완전수는 1111(2)이 됩니다. 그러므로 0010(2)에 1의 보수를 더하면 다음과 같이 완전수가 됩니다. 0 0 1 0  +  1 1 0 1  (1의 보수) 1 1 1 1  (완전수) 2의 보수⇒ 1의 보수 결과 + 1 (2) 예를 들어 위의 1의 보수법에 의한 결과인 1101 (2) 에 1 (2) 를 더하면 1110 (2) 이 됩니다. 기준이 되는 최왼쪽에 있는 비트는 부호를 나타내는 것으로 1이므로 음수임을 나타냅니다. 이 음수값을 직접적으로 십진수로 전환할 수 없습니다. 그러므로 이 값을 알기 위해서는 다시 2의 보수를 결정합니다. 1 1 1 0 1의 보수 →  0 0 0 1 2의 보수 +  0 0 0 1 2 ⇐  0 0 1 0 위 결과 1110 (2) 의 부호변환 결과는 2이므로 -2가 됩니다. 예) 16비트를 기준으로 2의 보수를 사용하여 십진수 7의 음수인 이진수를 결정해봅니다. 0 0 0 0 … 0 1 1 1 7에 대한 2의 보수:  1 1 1 1 … 1 0 0 1  ⇒ -7 -7의 2진수를 십진수로 확인하기 위해서는 다시 2의 보수를 적용합니다. -7에 대한 2의 보수:  0 0 0 0 … 0 1 1 1  ⇒ 7 numpy 패키지의 binary_repr() 함수를 적용하여 확인할 수 있습니다. from numpy import binary_repr binary_repr(-7, width=16) '1111111111111001'...