기출 4회 2번문제 dec = dec - 128
하는 이유 잘모르겠습니다
알고리즘 해설 부탁드립니다
기출 5회 3번문제 이해가 잘 안갑니다
해설 부탁드립니다
안녕하세요.
1)
2의 보수로 표현된 값을 십진수로 쉽게 변환하는 방법 중 하나입니다.
주어진 비트에서 표현 가능한 가장 큰 값에서 10진수로 변환된 값을 빼주면 쉽게 변환하는 효과를 얻을 수 있습니다.
예를 들어 11011101 의 값을 변환한다고 하면
맨 앞의 부호 비트가 1이므로 음수입니다.
나머지 1011101의 값 93인데 이값을 주어진 비트(부호를 제외하고)인 7비트의 최대값인 128에서 빼면
128-93 = 35가 됩니다. 부호가 음수였으므로 -35가 됩니다.
이를 2진수 2의 보수 변환법으로 변환해 봐도 동일합니다.
1011101은 2의 보수로 표현된 것으로 원래의 값을 알려면 2의 보수로 다시 변환해야 합니다.
2의 보수로 변환하면 0100011입니다. 이를 십진수로 변환하면 35이고 여기에 음수를 붙이면 -35가 됩니다.
2)
1권 198쪽에 각 코드별로 설명이 되어 있습니다. 우선 해당 내용을 통해 흐름을 파악한 후 다시 한 번 디버깅을 하면서 살펴보세요. 그래도 잘 이해가 안되는 부분을 질문 주시면 자세히 답변드리겠습니다.
오늘도 즐거운 하루 되세요.
-
*2017-10-11 09:19:53
안녕하세요.
1)
2의 보수로 표현된 값을 십진수로 쉽게 변환하는 방법 중 하나입니다.
주어진 비트에서 표현 가능한 가장 큰 값에서 10진수로 변환된 값을 빼주면 쉽게 변환하는 효과를 얻을 수 있습니다.
예를 들어 11011101 의 값을 변환한다고 하면
맨 앞의 부호 비트가 1이므로 음수입니다.
나머지 1011101의 값 93인데 이값을 주어진 비트(부호를 제외하고)인 7비트의 최대값인 128에서 빼면
128-93 = 35가 됩니다. 부호가 음수였으므로 -35가 됩니다.
이를 2진수 2의 보수 변환법으로 변환해 봐도 동일합니다.
1011101은 2의 보수로 표현된 것으로 원래의 값을 알려면 2의 보수로 다시 변환해야 합니다.
2의 보수로 변환하면 0100011입니다. 이를 십진수로 변환하면 35이고 여기에 음수를 붙이면 -35가 됩니다.
2)
1권 198쪽에 각 코드별로 설명이 되어 있습니다. 우선 해당 내용을 통해 흐름을 파악한 후 다시 한 번 디버깅을 하면서 살펴보세요. 그래도 잘 이해가 안되는 부분을 질문 주시면 자세히 답변드리겠습니다.
오늘도 즐거운 하루 되세요.