어렵다, 아님 집중력이 예전만큼 없는 것일수도 있다.

앞 절에서 살펴본 모든 2진수는 양수였다. 하지만 실제 세계에서 문제를 해결하려면 양수와 음수를 모두 사용해야 하는 경우가 많다. 비트들을 사용해 음수를 표현하는 방법을 살펴보자. 예를 들어, 4비트를 쓴다고 가정하자. 앞 절에서 배운 것처럼 4비트로는 0부터 15까지 16가지 수를 표현할 수 있다. 4비트로 수를 16가지만 표현할 수 있다는 말이 꼭 4비트로는 0부터 15까지만 표현할 수 있다는 뜻은 아니다. 기억하라 - P62
따라서 이를 비트 하나를 써서 표현할 수 있다. 우리는 가장 왼쪽 비트(MSB)를 부호에 사용하기로 멋대로 결정했다. 따라서 4비트 중에 3 비트가 남고, 이를 사용하면 0부터 7까지 수를 표현할 수 있다. - P63
한 비트를 부호에 사용하고 나머지 비트를 수의 크기, 즉 0부터의 거리(절댓값)를 표현하기 위해사용하는 이런 방법을 부호와 크기sign and magnitude 표현법이라고 말한다. - P63
그림을 보면 0001은 부호 비트가 0이기 때문에 1을 2진수로 표현한다. 1001은 부호 비트가 이기 때문에 -1을 2진수로 표현한다. 이 두 수를 XOR과 AND를 사용한 산술 방식으로 계산하면1010이 된다. 이 값을 10진수로 바꾸면 2인데, 2는 +1과 -1을 더한 값이 아니다. - P64
음수를 표현하는 또 다른 방법으로는 양수의 모든 비트를 뒤집는 방법이 있다. 이런 방법을 의보수 one‘s complement 표현법이라고 부른다. - P64
1의 보수 표현법에도 0을 두 가지 방식으로 표현한다는 문제가 여전히 존재한다. 게다가 1의 보수에서도 덧셈을 쉽게 할 수는 없다. 이 문제를 해결하려면 MSB 쪽에서 올림이 발생한 경우에는 LSB로 올림을 전달해야 하는데, 이를 순환 올림end-around carry 이라고 부른다. - P65
현대 컴퓨터에서는 부호와 크기 표현법이나 1의 보수 표현법을 모두 사용하지 않는다. 이 두 방식을 사용한 계산은 추가적인 하드웨어 없이는 제대로 작동할 수 없고, 하드웨어를 추가해야 한다는 말은 비용이 더 든다는 뜻이다. 이제는 이런 문제를 해결하는 표현법을 살펴보자. - P66
|