float 16진수 변수선언 문제.
우울녀
2023.04.01
질문 제목 : float 16진수 변수선언 문제.float 16진수 변수선언할때 0x1f같은 정수는 되는데 0x1.f와 같은 소수는 안되요. 하지만 출력은 소수형태로 출력가능합니다.질문 내용 :
#include stdio.h
int main(void)
{
float val = 0x1f;
printf(val의 값은 %a이다.\n,val);
return 0;
}
컴파일하고 실행하면 val의 값은 0x1.f00000p+4이다. 라고 나오는데요. 왜 출력은 되는데 변수 선언에서는 안될까요?
참고로 p+4는 2의 4제곱 표현입니다. 계산해보시면 10진수로 31숫자가 맞는것을 확인하실수 있어요.
-
살랑살랑
링크걸어주신 사이트처럼 p를 포함해서 변수선언했는데도 구조체형식이 있어야 한다고 오류가 뜨네요.. 그냥 이문제는 넘어가야 할듯하네요..ㅠ 답변감사합니다.
-
돋가이
참고로 위에 코드는 c99를 지원해야 가능합니다. %a는 16진수 부동소수점 포맷지정자입니다. %x로 쓰시면 안됩니다...