你这里首先一个严重问题就是不管什么环境下变长参数接受float和int的长度都不一样
你这里看上去是16位的,int是2字节 float是4字节
第一个printf 除格式需要6字节的参数你只提供了4字节,%f的高2字节是不缺定的值,所以打印出来的float也是不确定的(当然你每次执行这个程序可能会一样,但是改一下调用顺序就不行了)
第二个要求6个字节你给了8个字节,另外第二个printf没理由是0... 16位下应该是39322
囧,,好吧
int 存放是二进制
但是浮点数的存放中有一部分二进制位代表的是2的几次方
float用科学计数法
1bit符号 + 8bits指数 + 23位有效数字
int
sigma(bit[i]*2^i)
存储格式不一样
所以一样的二进制数代表的数值不一样
ps
楼上,32位机明显int float一样长,
又是读谭浩强读出来的吧= =b