53쪽에서
scanf("%d %o", &i, &j);
의 해설에서 20 20을 입력했다면 i에는 20이 j에는 16이 저장된다. 8진수 20이 10진수로는 16이다 라고 표현되어있는데요
여기에서는 8진수자리에 20 넣었을때 8진수 20의 10진수형태인 16으로 바꿔서 입력되는데
55쪽에서
printf("10진수i = %d\t 8진수i = %o\n", i, i);
의 해설에는 앞에 i는 그대로 250이 출력되는건 알겠는데 뒤에는 250의 8진수변환값인 372를 출력되더라구요
위에서는 20을 입력했을 때 그 값을 10진수로 바꿔서 16으로 입력되고 뒤에는 값을 8진수로 바꿔서 출력되고 왜 다른건가요??
밑에 방법대로라면 위에도 20의 8진수값인 24가 입력되는거 아닌가요??입력과 출력의 차이인가요?? 너무 헷갈립니다 ㅠㅠ왜 다른지 알려주세요
안녕하세요 길벗수험서 운영팀입니다.
8진수의 20이 10진수로 변환되어 저장되는 것과,
저장된 10진수의 20이 8진수로 변환되어 출력되는 것의 차이입니다.
8진수 100이 입력되었다고 가정해보세요. (53쪽의 경우 scanf("%o",&j))
10진수로 변환하여 저장하게 되면 메모리에 64로 저장되겠고,
8진수로 출력하면 100, 10진수로 출력하면 64가 나오게 됩니다.
10진수 100이 입력되었다고 가정해보세요. (54쪽의 int i=250)
10진수 그대로 메모리에 100이 저장되겠고,
8진수로 출력하면 144, 10진수로 출력하면 100이 나오게 됩니다.
컴퓨터에 저장되는 값을 기준으로 정확히 파악하도록 하세요.
(메모리에는 16진수로 저장되지만, 교재에서 수험자의 이해를 돕기 위해 10진수로 표현합니다.)
행복한 하루되세요 :)
-
관리자2019-05-02 10:15:22
안녕하세요 길벗수험서 운영팀입니다.
8진수의 20이 10진수로 변환되어 저장되는 것과,
저장된 10진수의 20이 8진수로 변환되어 출력되는 것의 차이입니다.
8진수 100이 입력되었다고 가정해보세요. (53쪽의 경우 scanf("%o",&j))
10진수로 변환하여 저장하게 되면 메모리에 64로 저장되겠고,
8진수로 출력하면 100, 10진수로 출력하면 64가 나오게 됩니다.
10진수 100이 입력되었다고 가정해보세요. (54쪽의 int i=250)
10진수 그대로 메모리에 100이 저장되겠고,
8진수로 출력하면 144, 10진수로 출력하면 100이 나오게 됩니다.
컴퓨터에 저장되는 값을 기준으로 정확히 파악하도록 하세요.
(메모리에는 16진수로 저장되지만, 교재에서 수험자의 이해를 돕기 위해 10진수로 표현합니다.)
행복한 하루되세요 :)