您的位置:首页 > 其它

[置顶] day32.浮点类型

2018-02-27 18:19 99 查看
第32节:浮点类型

学习数据类型主要有两点,数据类型决定了一个变量能存储多少数据,还是它存储的数据是什么格式的。

浮点类型的种类
float                    4个字节
double                8个字节
long double        8个字节(某些平台的编译器可能是16个字节)

赋值:
float             x = 1.23;
double         d =2.34;
long double d = 2.34;

float and double在存储方式上都是遵从IEEE编码规范的。

例子:
8.23转换浮点存储:整数部分
8/2=4       0
4/2=2       0
2/2=1       0
1/2=0       1

9/2=4       1
4/2=2       0
2/2=1       0
1/2=0       1

所有的整型一定可以转成二进制

小数部分0.25转成二进制
0.25*2 = 0.5      0
0.5*2  = 1.0      1

小数部分0.4转成二进制
0.4*2 = 0.8
0.8*2 =1.6
0.6*2 =1.2
0.2*2 =0.4

用二进制描述小数,不可能做到完全精确
就好比用10进制来表示1/3也可能完全精确是一个道理

8.25 = 1000.01  (二进制)
1000.01 = 1.00001 * 2的3次方(指数是3)
0 00000000 00001000000000000000000
0100 0001 0000 0100 0000 0000 0000 0000
41040000

查看程序代码和汇编代码
#include<stdio.h>
void main()
{
float f = 8.25F;
return;
}

4:        float f = 8.25F;
00401028   mov         dword ptr [ebp-4],41040000h
注意:41040000h=41040000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: