signed maginitude format addition, subtraction ( 부호화 절대치 표현에서 덧셈,뺄셈 )
조회수 619회
위 순서도대로 진행을 해보았습니다.
17+(-22) 라는 식에서 A = 17, B = -22라고 하겠습니다.
A_s = 0, A_m = 0010001
B_s = 1, B_m = 0010110
S = A_s xor B_s = 1 ( Different sign )
R_m에 A_m에서 B_m을 뺀 결과를 넣습니다.
R_m = 1111011 이 나오며 최상위 캐리 비트와 그 전 캐리 비트는 같으므로 overflow가 발생되지 않습니다.
따라서 R_m은 2의 보수화를 해줍니다. R_m = 0000101, R_s는 B_s를 따릅니다.
결과 : R_s = 1, R_m = 0000101 -> R = -5입니다.
(-22) + 17 , 즉 피연산자를 서로 바꾸어보았습니다. 똑같은 식입니다. 이 식을 기준으로 똑같이 진행해보겠습니다.
A_s = 1, A_m = 0010110
B_s = 0, B_m = 1101111
S = A_s xor B_s = 1 ( Different sign )
R_m에 A_m에서 B_m을 뺀 결과를 넣습니다.
R_m = 0000101 이 나오며 최상위 캐리 비트와 그 전 캐리 비트는 같으므로 overflow가 발생되지 않습니다. - (*)
따라서 R_m은 2의 보수화를 해줍니다. R_m = 1111011, R_s는 B_s를 따릅니다.
결과 : R_s = 0, R_m = 1111011 -> R = 125
느낌상 (*) 부분에서 오버플로우가 발생되어야 결과 아다리가 맞아지는 것 같은데, 제가 아는 오버플로우 판단법상
오버플로우는 발생되지 않거든요. 어디서 틀렸는지 모르겠습니다.
오버 플로우 판정법이 최상위 캐리비트와 그 전 캐리비트와 다르면 오버플로우, 같으면 이상무 아닌가요 ?
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력