萌新求助
想问一下scanf("%f", &num);
这是输入浮点型数据
那么浮点型数据里的小数点"."会被认为是浮点型还是属于字符型? ?听不懂 起个表示作用吧,其中原理我也不了解! 既然是浮点型数据那么应该也是属于浮点型的
这个问题不用太过深入讨论就记住在scanf函数中%lf对应是double,%f对应float,小数点就是个小数里的一个点 小数点是浮点型数据的一部分啊,干嘛非得抠出来 当然是属于浮点型,.我感觉只是一个区分整数部分和小数部分而已,楼主想多了! 在计算机的世界里是没有小数点的,只有 0 和 1。遵循IEEE-754格式标准,浮点数在计算机内存中占用4字节(Byte),即32-bit。
一个浮点数由3部分组成:符号部分S + 底数部分M + 指数部分E。
例如将17.625换算成 float型。
首先,17.625换算成二进制位:10001.101 ,将 10001.101 向右移(相当于小数点左移),直到小数点前只剩一位。成了 1.0001101 x 2的4次方(因为右移了4位)。此时,我们的底数M和指数E就出来了:
底数部分M,因为小数点前必为1,所以IEEE规定只记录小数点后的就好,所以此处底数为 0001101 。
指数部分E,实际为4,但须加上127,固为131,即二进制数 10000011
符号部分S,由于是正数,所以S为0.
综上所述,17.625的 float 存储格式就是:
0100 0001 1000 1101 0000 0000 0000 0000
转换成16进制:0x41 8D 00 00
若还不能理解,请查阅有关数字逻辑方面的书籍
页:
[1]