• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

1.0625e0과 0.0625e0의 차이

23.11.28 18:50 작성 조회수 137

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님의 프로필

Soobak

2023.11.29

안녕하세요, 답변 도우미 Soobak 입니다.

 

printf() 함수의 형식 지정자 %a 또는 %A 는 부동 소수점 숫자를 16진법 표기법으로 출력하기 위한 것입니다.
이 형식에서, 16진수 표현 다음에는 p 또는 P 가 오며, 이어서 지수가 2진수로 표시됩니다.

 

이 때, 0x1.0000000000000p-4 라는 출력은 16진수에서 1.02-4 승을 곱한 값을 의미합니다.
따라서, 1.0 * 1/16 즉, 0.0625 를 정확히 나타냅니다.