16진수 부동소수점 관련
850
작성한 질문수 7
부동소수점 관련 강의를 듣고 있는와중
float a = 0xb.aP1;
printf("%a",a);
로 작성하면 강의에 나온 출력값과 같이 나오는데,
printf("%x, %a",a,a); 로 작성하면 원하는 값이 나오지 않습니다.
왜그런건가요?
답변 3
2
이 부분은 저도 잘 몰랐던 부분이네요. 다시 질문주셔서 감사합니다.
https://stackoverflow.com/questions/7480097/what-happens-to-a-float-variable-when-d-is-used-in-a-printf
C 에서 float를 함수의 인수로 받을 때 8byte double의 형태로 변환하는 것이 표준이라는군요.
때문에 printf("%x %a", a, a) 를 해주게되면 double의 8byte 중에서 4byte가 %x에 들어가고, 나머지 4byte 이후가 %a로 들어가서 출력이 된다고 합니다.
하지만 이상한 값이 출력되는 것이니 사용상에 주의가 필요하겠다. 라고 여기시면 되겠습니다.
그리고... 다음 질문부터는 해당강의에 올려주시고, 강의의 어느부분인지도 함께 적어주세요.
0
이미 16진수 정수형태로 표현된수는 %x를 이용해 16진수 정수형태로 표현하면 0 이나오는 이유는 뭔가요? 또한 첫번째 식을이용해 출력한 %a 값이랑 두번째 식을 이용한 %a 값이 다른 이유는 뭔가요?
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
49
3
main 함수에서 왜 int만 선언이 되는걸까요
1
54
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
53
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
46
1
프로토타입과 함수간의 인자 불일치
1
72
2
12.12 헤더 관련 질문
1
59
2
Visual Studio Community 2026 사용 문의
1
135
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
59
2
getchar(), putchar()
1
92
3
강의자리ㅛ
1
78
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
112
2
소스파일안에 여러 파일
1
75
2
F5와 F7의 차이
1
75
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
68
1
Step over 기능 문의
1
52
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
64
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
53
2
11.5 코드 구현
1
67
2





