DEC=128-DEC 작업을 왜 하는건지 이해가 잘 안됩니다.
안녕하세요.
최상위 비트 값이 1인 경우 음수이고 음수인 경우 2의 보수로 표현되었다는 조건에 따라
S(8)에 10001101이 기억되어 있다면 이는 십진수로 -13이라는 의미입니다.
맨 앞은 부호 음수(-)를 의미하고 실제값 1101이 13인 것이죠.
하지만 처리 과정을 통해 10001101이 십진수로 변환하면 DEC에는 141이 저장됩니다.
그래서 이 값을 우리가 알고 있는 13이라는 값으로 변환하기 위한 과정이 필요한데,
그 방법이 표현된 비트 수의 가장 최상위를 1로 만든 값으로 빼주는 것이죠.
즉 8비트 이므로 최상위 비트를 1로 만든 10000000(128)을 빼주는 것입니다.
즉 처리되어 DEC에 기억된 값이 10001101이라면 141입니다. 여기서 10000000인 128을 빼주면
141-128 = 13이 됩니다.
그런 다음 DEC에 (-1)을 곱하여 -13으로 출력을 하는 것이죠.
오늘도 즐거운 하루 되세요.
-
*2017-10-16 09:25:14
안녕하세요.
최상위 비트 값이 1인 경우 음수이고 음수인 경우 2의 보수로 표현되었다는 조건에 따라
S(8)에 10001101이 기억되어 있다면 이는 십진수로 -13이라는 의미입니다.
맨 앞은 부호 음수(-)를 의미하고 실제값 1101이 13인 것이죠.
하지만 처리 과정을 통해 10001101이 십진수로 변환하면 DEC에는 141이 저장됩니다.
그래서 이 값을 우리가 알고 있는 13이라는 값으로 변환하기 위한 과정이 필요한데,
그 방법이 표현된 비트 수의 가장 최상위를 1로 만든 값으로 빼주는 것이죠.
즉 8비트 이므로 최상위 비트를 1로 만든 10000000(128)을 빼주는 것입니다.
즉 처리되어 DEC에 기억된 값이 10001101이라면 141입니다. 여기서 10000000인 128을 빼주면
141-128 = 13이 됩니다.
그런 다음 DEC에 (-1)을 곱하여 -13으로 출력을 하는 것이죠.
오늘도 즐거운 하루 되세요.