모의고사 4회 문제중에 처리조건보면 2의보수로 표현된 값이라고 나와있는데요
마지막에 음수처리과정 보면
DEC= 128-DEC다음에
DEC = DEC* (-1)라고 나오는데
이 방법은 부호화된 2진 표현아닌가요?
2의 보수 방법으로 음수로 바꿀려면 DEC = DEC-256을 해야 될것 같은데요
문제가 잘못된듯 싶네요
안녕하세요.
이 알고리즘은 부호 비트는 값으로 처리할 의미가 없으므로 2번째 비트부터 처리를 합니다.
예를 들어 1101 1101이 입력되었다고 가정하면,
1101 1101은 -35입니다. 앞의 부호가 1이므로 음수이고 음수인 경우 값은 2의 보수로 표현된 값이기 때문이죠.
+35의 경우는 0010 0011입니다. 이를 2의 보수로 표현해 보면, 먼저 1의 보수로 변환 1101 1100입니다. 여기에 +1을 하면 2의 보수가 되죠. 1101 1101이 됩니다.
순서도에서 처리는 다음과 같이 수행됩니다.
부호 비트를 제외한 나머지 비트, 즉 P가 2부터 진행하여 각 값의 누적값을 DEC에 저장합니다.
그러면 값이 1인 자리만 누승의 곱이 의미가 있으므로
= 1*2^6 + 0 + 1 * 2^4 + 1*2^3 + 1*2^2 + 0 + 1*2^0
= 64 + 16 + 8 + 4 + 1 = 93
즉 해설에서 동그라미 1~7번까지의 처리 결과로 DEC는 93이 됩니다.
이어서 S(1)이 1이므로 DEC = 128-DEC가 되어 DEC = 128-93 = 35가 됩니다.
이어서 DEC=DEC*(-1)에 의해 DEC는 최종적으로 -35를 갖습니다.
즉 1101 1101은 음수로 표현된 2의 보수 값으로 10진수로 표현하면 -35가 되는 것이죠.
오늘도 즐거운 하루 되세요.
"-
*2013-04-03 10:35:24
안녕하세요.
이 알고리즘은 부호 비트는 값으로 처리할 의미가 없으므로 2번째 비트부터 처리를 합니다.
예를 들어 1101 1101이 입력되었다고 가정하면,
1101 1101은 -35입니다. 앞의 부호가 1이므로 음수이고 음수인 경우 값은 2의 보수로 표현된 값이기 때문이죠.
+35의 경우는 0010 0011입니다. 이를 2의 보수로 표현해 보면, 먼저 1의 보수로 변환 1101 1100입니다. 여기에 +1을 하면 2의 보수가 되죠. 1101 1101이 됩니다.
순서도에서 처리는 다음과 같이 수행됩니다.
부호 비트를 제외한 나머지 비트, 즉 P가 2부터 진행하여 각 값의 누적값을 DEC에 저장합니다.
그러면 값이 1인 자리만 누승의 곱이 의미가 있으므로
= 1*2^6 + 0 + 1 * 2^4 + 1*2^3 + 1*2^2 + 0 + 1*2^0
= 64 + 16 + 8 + 4 + 1 = 93
즉 해설에서 동그라미 1~7번까지의 처리 결과로 DEC는 93이 됩니다.
이어서 S(1)이 1이므로 DEC = 128-DEC가 되어 DEC = 128-93 = 35가 됩니다.
이어서 DEC=DEC*(-1)에 의해 DEC는 최종적으로 -35를 갖습니다.
즉 1101 1101은 음수로 표현된 2의 보수 값으로 10진수로 표현하면 -35가 되는 것이죠.
오늘도 즐거운 하루 되세요.
"