e********d 发帖数: 1202 | 1 #include
main(int agrc, char * argv[]){
int a = 4;
printf("%f\n",a);
printf("%u\n",a);
printf("%f,%u\n",a,a);
printf("%d,%f,%u\n",a,a,a);
printf("%d,%f,%u,%u\n",a,a,a,a);
printf("%f,%u\n",(float)a,(unsigned)a);
}
gcc, mac osx, 输出如下,
0.000000
4
0.000000,2413823420
4,0.000000,0
4,0.000000,4,0
4.000000,4
请教中间几行输出为什么是这样. | P********e 发帖数: 2610 | 2 %f读4,如果是按照float格式读,是接近0的一个数 e - 128?之类的
你可以把4 cast 到float,然后再看byte representation. exp的位有一个127的offset
%u读a, 我比较奇怪为什么不是4,解释不了
而且,倒数第二行,同样%u%u,第一次是4,第二次0
#include
main(int agrc, char * argv[]){
int a = 4;
printf("%f\n",a);
printf("%u\n",a);
printf("%f,%u\n",a,a);
printf("%d,%f,%u\n",a,a,a);
printf("%d,%f,%u,%u\n",a,a,a,a);
printf("%f,%u\n",(float)a,(unsigned)a);
}
gcc, mac osx, 输出如下,
0.000000
4
0.000000,2413823420
4,0.000000,0
4,0.000000,4,0
4.000000,4
请教中间几行输出为什么是这样.
【在 e********d 的大作中提到】 : #include : main(int agrc, char * argv[]){ : int a = 4; : printf("%f\n",a); : printf("%u\n",a); : printf("%f,%u\n",a,a); : printf("%d,%f,%u\n",a,a,a); : printf("%d,%f,%u,%u\n",a,a,a,a); : printf("%f,%u\n",(float)a,(unsigned)a); : }
| t****t 发帖数: 6806 | 3 printf family里, %f代表double
请把上面这句话重复100遍啊100遍
为什么搞不清这个的人如此之多...
offset
【在 P********e 的大作中提到】 : %f读4,如果是按照float格式读,是接近0的一个数 e - 128?之类的 : 你可以把4 cast 到float,然后再看byte representation. exp的位有一个127的offset : %u读a, 我比较奇怪为什么不是4,解释不了 : 而且,倒数第二行,同样%u%u,第一次是4,第二次0 : : #include : main(int agrc, char * argv[]){ : int a = 4; : printf("%f\n",a); : printf("%u\n",a);
| M*****a 发帖数: 2054 | 4 我搞不清。。。
【在 t****t 的大作中提到】 : printf family里, %f代表double : 请把上面这句话重复100遍啊100遍 : 为什么搞不清这个的人如此之多... : : offset
| P********e 发帖数: 2610 | 5 当然不是
%f可以代表float and double, 你摆脱一下
【在 t****t 的大作中提到】 : printf family里, %f代表double : 请把上面这句话重复100遍啊100遍 : 为什么搞不清这个的人如此之多... : : offset
| t****t 发帖数: 6806 | 6 请阅读C FAQ 12.9, 再想想为什么我说%f代表double, 再想想为什么%u找不到4
我就不问那个问过好多遍的问题了.
【在 P********e 的大作中提到】 : 当然不是 : %f可以代表float and double, 你摆脱一下
| p****s 发帖数: 32405 | 7 大人, 我替您打个下手:
http://c-faq.com/stdio/scanfvsprintf.html
【在 t****t 的大作中提到】 : 请阅读C FAQ 12.9, 再想想为什么我说%f代表double, 再想想为什么%u找不到4 : 我就不问那个问过好多遍的问题了.
|
|