작성
·
233
1
안녕하세요.
강의의 23째 줄 코드를 제가 0.0625e0;로 바꾼 후 build를 해보니까 프로그램 마지막 출력에서 각각 아래와 같은 값이 나왔습니다.
0x1.0000000000000p-4
0X1.0000000000000P-4
저는 0.0625가 1/16이니 출력이 0x1.000...0p-1이나
0x0.1000...0p+0일 줄 알았는데 p-4가 나와서
왜 이러한 값이 나오는지 질문드립니다.
답변 1
2
안녕하세요, 답변 도우미 Soobak 입니다.
printf()
함수의 형식 지정자 %a
또는 %A
는 부동 소수점 숫자를 16진법 표기법으로 출력하기 위한 것입니다.
이 형식에서, 16진수 표현 다음에는 p
또는 P
가 오며, 이어서 지수가 2진수로 표시됩니다.
이 때, 0x1.0000000000000p-4
라는 출력은 16진수에서 1.0
에 2
의 -4
승을 곱한 값을 의미합니다.
따라서, 1.0 * 1/16
즉, 0.0625
를 정확히 나타냅니다.