|
发表于 2013-2-2 11:28:00
|
显示全部楼层
本帖最后由 yoz 于 2013-2-2 11:53 编辑
(编辑原因:补回我错误的思路,提出疑问,也消除话没说清楚引起的误会)
5.75就是101.11,也就是1.0111*2^10,对应应该是0 10000001 0111 0000 0000 0000 0000 000,对应的int应该是1085800448
(但是读出却是0,于是我做了实验)
/********************/
#include <stdio.h>
int main(void)
{
float a = 5.75;
int b;
b = (int)a;
printf("%d\n" , b);
printf("%d\n" , a);//我故意试验两种方法的,在工作中不可能做这么2的事
return 0;
}
/********************/
才明白
(int)5.75==5
而
float a=5.75;
printf("%d\n",a);
会输出0
我之前对c理解的还是不到位
现在还是有疑惑,为什么用%d会输出0而不是1085800448?难道是大小端?我还不明白 |
|