다음 연산의 결과는?(단, 수의 표현은 2'S Complement임)
101011 - 100110
이거인데요??
첫번째 비트가 1이므로 음수값입니다.음수값은 다시 2의 보수를 취해야만 그 값의 크기를 알 수 있습니다.
101011과 100110 에 대한 2의 보수를 구한 후 10진수로 변환합니다 ...
101011 - > 010101
100110 - > 011010
여기서 음수값을 다시 2의 보수로 취할때 ....이해가 안가서 그러는데요,,
101011 이거를 보면..
첫번째 비트가 1이니깐..양수는 0 이므로 당연히 맨앞자리는 0으로 바꿔주고..
010101 --> 맨뒤에 비트를 1로만 그대로 써주고 나머지는 다 반대로 바꼇습니다..맞나요??
이렇게 이해를 하게된다면..
그다음꺼..100110
011010 -> 맨뒤에께 바뀌지않고..뒤에서 앞에것도..1이 0으로 안바뀌고 그대로 써줬습니다..
이해가 안가네요..어떻게 취해야하는건지요???자세히 설명부탁드립니다.
안녕하세요.
2의 보수를 구하는 방법만 명확히 하시면 될 것 같습니다.
방법1) 값을 1의 보수로 변환 그리고 1의 보수에 +1을 합니다.
방법2) 오른쪽에서 왼쪽 방향으로 진행하면서 첫번째 1이 나올때까지는 그대로 써주고 나머지는 1은 0으로 0은 1로 변환합니다.
방법 1로 설명하겠습니다.
101011
101011 -> 1의 보수 -> 010100
010100 ->2의 보수(+1) -> 010101
100110
100110 -> 1의 보수 -> 011001
011001 -> 1의 보수 +1 -> 011010
산출된 결과
010101 을 10진수로 변경하면 16+4+1 = 21(2의 보수로 표현하였으므로 앞에 - 부호를 붙임) -> -21
011010 을 10진수로 변경하면 16+8+2 = 26(2의 보수로 표현하였으므로 앞에 - 부호를 붙임) -> -26
-21 - (-26) = -21 + 26 = 5
5를 2진수로 변환하면 101입니다. 6Bit로 표현하면 000101이 됩니다.
오늘도 즐거운 하루 되세요.
"
-
*2012-02-27 10:10:58
안녕하세요.
2의 보수를 구하는 방법만 명확히 하시면 될 것 같습니다.
방법1) 값을 1의 보수로 변환 그리고 1의 보수에 +1을 합니다.
방법2) 오른쪽에서 왼쪽 방향으로 진행하면서 첫번째 1이 나올때까지는 그대로 써주고 나머지는 1은 0으로 0은 1로 변환합니다.
방법 1로 설명하겠습니다.
101011
101011 -> 1의 보수 -> 010100
010100 ->2의 보수(+1) -> 010101
100110
100110 -> 1의 보수 -> 011001
011001 -> 1의 보수 +1 -> 011010
산출된 결과
010101 을 10진수로 변경하면 16+4+1 = 21(2의 보수로 표현하였으므로 앞에 - 부호를 붙임) -> -21
011010 을 10진수로 변경하면 16+8+2 = 26(2의 보수로 표현하였으므로 앞에 - 부호를 붙임) -> -26
-21 - (-26) = -21 + 26 = 5
5를 2진수로 변환하면 101입니다. 6Bit로 표현하면 000101이 됩니다.
오늘도 즐거운 하루 되세요.