모의고사 114페이지 질문드려요
선생님께서 부호비트가 음수일경우(1) 한자릿수 큰 자릿수에서 현재2진수값(1010100)을 빼서
2의보수를 구하라고 설명하셨어요
1 0 0 0 0 0 0 0
- 1 0 1 0 1 0 0
---------------
1 0 1 1 0 0(-44)
그런데 제가이해하기로는 처리조건에 보면 음수의경우 2의 보수로 표현된 값이라고
명시가되어있어서 부호비트가 양수일경우엔 2진수 그대로지만
음수일경우 1 0 1 0 1 0 0 을 2의보수라고 가정한 후
다시 2진수로 변환해서(1 0 1 1 0 0, -44) 푸는건지 알았거든요, 그런데
알고리즘상에 128-DEC가 나온걸 보면 문제의 의도는 그게 아닌거같고,,
혹시 처리조건에서 2의보수로 표현된값이란게 십진수를 뜻하는건가요??
아무튼,,
처리조건을 보고 많이 혼동스럽네요 처리조건에 음수의경우 2의 보수로 표현된 값이라고 명시되어있는데
왜 선생님께서 다시 2의보수를 구하라고 설명하셨는지 답변좀 부탁드려요~
안녕하세요.
2의 보수를 처리하는 과정은 공식처럼 생각하시면 됩니다.
2의 보수로 표현된 값을 10진수로 변환하려면 2의 보수를 구하는 역의 과정 즉 다시 2의 보수를 취하면 되는데 .. 이 과정이 주어진 비트수보다 1비트 큰 자리를 1로 한 값(즉 7비트 인 경우는 10000000 = 128)에서 빼는 값과 동일합니다.
예를 들어 1010이 2의 보수로 표현된 값이라면 10진수로 변환하기 위해 다시 2의 보수로 취하면 0110이 되어 10진수로 6이라는 값이 됩니다.
마찬가지로 1010 자체를 10진수로 변환한 값 10을 5자리의 값(10000)인 16에서 10을 뺀 6과 동일하게 산출됩니다.
이 과정이 이해하기 어려우시면 2의 보수로 표현된 값을 다시 2의 보수로 구할 때는 한자리 큰 자리 값에서 뺀다고 기억하세요.
오늘도 즐거운 하루 되세요.
-
*2013-08-22 09:16:54
안녕하세요.
2의 보수를 처리하는 과정은 공식처럼 생각하시면 됩니다.
"
2의 보수로 표현된 값을 10진수로 변환하려면 2의 보수를 구하는 역의 과정 즉 다시 2의 보수를 취하면 되는데 .. 이 과정이 주어진 비트수보다 1비트 큰 자리를 1로 한 값(즉 7비트 인 경우는 10000000 = 128)에서 빼는 값과 동일합니다.
예를 들어 1010이 2의 보수로 표현된 값이라면 10진수로 변환하기 위해 다시 2의 보수로 취하면 0110이 되어 10진수로 6이라는 값이 됩니다.
마찬가지로 1010 자체를 10진수로 변환한 값 10을 5자리의 값(10000)인 16에서 10을 뺀 6과 동일하게 산출됩니다.
이 과정이 이해하기 어려우시면 2의 보수로 표현된 값을 다시 2의 보수로 구할 때는 한자리 큰 자리 값에서 뺀다고 기억하세요.
오늘도 즐거운 하루 되세요.