부호 있는 2의 보수 빼기

부호 있는 2의 보수 빼기

3비트 2의 보수를 사용하고 빼기 연산을 수행한다고 가정해 보겠습니다. 피감수는 +3이고 감수는 -4입니다. 우리는 감수의 2의 보수를 구해서 피감수에 더해야 합니다. +3=011 -4=100--->2의 보수는 다시 100이 됩니다. 이제 이를 더하면 111이 되는데 이는 잘못된 것입니다. 왜냐하면 우리는 3-(-4)=+7을 얻어야 하지만 결과는 음수이기 때문입니다! 어떻게 분석 오버플로를 하시나요? 왜 결과가 틀렸어?

답변1

부호를 표시하기 위해 가장 왼쪽 비트를 사용하는 경우 전체 3비트 숫자를 사용할 수 없습니다. 100(양수, 부호 없음) 4이거나 실제로는 (음수) 0입니다.

숫자가 "-4"가 되려면 1100가 아닌 실제로 이어야 합니다 100. 그런 다음 3비트 숫자가 있고 그 숫자 중 하나가 음수라는 것을 알고 가지고 있는 정보로 작업합니다.

내 말은 당신이 얻는 가치입니다~이다7. 1113비트 부호 없는 숫자의 경우 정확히 7입니다.

3비트 보수 기능을 사용하는 경우 첫 번째 숫자가 부호 숫자가 아니라는 사실을 고려하지 않은 것입니다. 먼저 자신의 번호를 살펴보고 당장의 작업과 관련이 없는 정보, 즉 부호 숫자를 버려야 합니다. 기호는 이를 사용하여 수행해야 할 작업을 알려주지만 해당 숫자 값의 "실제" 부분은 아닙니다.

부호가 있는 3비트 숫자를 사용하는 경우 정의에 따라 2비트 덧셈과 뺄셈만 수행할 수 있습니다.

관련 정보