추가해설 6번
250(8)->372(10)으로 바꾼다는 말인가요?
(2*64)+(5*8)+(0*1)
372가 어떻게 나오는지 모르겠어요ㅜㅠ
2의 보수도 같이 질문할게용!!
58쪽 5번 해설에서
1111 1000에 대한 2의 보수를 구한다고 했는데
2의보수는 맨마지막에 +1을 더해주는거아닌가용?
1111 1000
+1
----------
안녕하세요.
1)
처음에 i에 250을 저장했습니다. i가 정수형이므로 i에는 10진수 250이 저장된 것입니다.
즉 250은 10진수 입니다.
i를 출력할 때 %d로 출력하면 10진수값 250이 그대로 출력됩니다.
하지만 i를 출력할 때 %o로 출력하면 8진수로 변환되어 출력됩니다.
10진수 250을 8진수로 변환하면 8로 나누면서 나머지를 거꾸로 작성하면 됩니다.
250 / 8 ... 몫은 31, 나머지는 2
31 / 8 .... 몫은 3, 나머지는 7
3 / 8 ... 나눠질 피제수가 나눌 제수보다 작으므로 몫이 그대로 나머지가 됩니다. .... 몫은 0, 나머지 3
이제 나머지를 거꾸로 작성하면 372가 됩니다.
2)
1111 1000 에 대한 2의 보수를 구하려면 먼저 2진수를 1의 보수로 구한 뒤 그 값에 +1을 하는 것입니다.
그러므로
1111 1000 -> 1의 보수 -> 0000 0111 -> 2의 보수 -> 0000 1000
이 됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-30 09:56:10
안녕하세요.
1)
처음에 i에 250을 저장했습니다. i가 정수형이므로 i에는 10진수 250이 저장된 것입니다.
즉 250은 10진수 입니다.
i를 출력할 때 %d로 출력하면 10진수값 250이 그대로 출력됩니다.
하지만 i를 출력할 때 %o로 출력하면 8진수로 변환되어 출력됩니다.
10진수 250을 8진수로 변환하면 8로 나누면서 나머지를 거꾸로 작성하면 됩니다.
250 / 8 ... 몫은 31, 나머지는 2
31 / 8 .... 몫은 3, 나머지는 7
3 / 8 ... 나눠질 피제수가 나눌 제수보다 작으므로 몫이 그대로 나머지가 됩니다. .... 몫은 0, 나머지 3
이제 나머지를 거꾸로 작성하면 372가 됩니다.
2)
1111 1000 에 대한 2의 보수를 구하려면 먼저 2진수를 1의 보수로 구한 뒤 그 값에 +1을 하는 것입니다.
그러므로
1111 1000 -> 1의 보수 -> 0000 0111 -> 2의 보수 -> 0000 1000
이 됩니다.
오늘도 즐거운 하루 되세요.