数据的存储(二)(浮点型)(零基础学习C语言)

数据的存储(二)(浮点型)(零基础学习C语言)
1e10的意思是1*10的10次方
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
在float.h头文件中可以查看浮点型的精度和取值范围
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
在limit.h头文件可以查看整形的精度和取值范围
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
整形在内存中的存储方式 与 浮点型在内存中的储存方式有区别
例:
猜测
数据的存储(二)(浮点型)(零基础学习C语言)
实际上
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
先将十进制的浮点数,化为相应的二进制补码,再将二进制写成科学计数法的表达形式,计算机将S M E分别存储,待使用时应用即可
(-1的几次方(表示符号)-1^0=0(二进制补码中表示正数),-1^1=-1(二进制补码中表示负数)
M的范围在1-2之间
2的E次方)
数据的存储(二)(浮点型)(零基础学习C语言)
例:
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
计算机将S M E分别存储,待使用时应用即可
计算机中S M E的存储形式
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
对有效数字M存储的规定,存储的是小数点后的精度(1没存)
数据的存储(二)(浮点型)(零基础学习C语言)
对指数数字E存储的规定:
数据的存储(二)(浮点型)(零基础学习C语言)
因为E规定为无符号整数,但是E可能有负数
所以如果是8位的E(float),(无论E为正负)将E加上127(十进制的127),作为E存储在电脑中
所以如果是11位的E(double),(无论E为正负)将E加上1023(十进制的1023),作为E存储在电脑中
数据的存储(二)(浮点型)(零基础学习C语言)
注意:M是后面补0
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
E的取出
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
减去127即可得到真实值(float)
减去1023即可得到真实值(double)
数据的存储(二)(浮点型)(零基础学习C语言)
这是一种特殊情况
意味着这个数非常小
数据的存储(二)(浮点型)(零基础学习C语言)
数据的存储(二)(浮点型)(零基础学习C语言)
这是一种特殊情况
意味着这个数非常大
数据的存储(二)(浮点型)(零基础学习C语言)
所以上面例题的正确分析:
浮点数的形式放进去
整形的形式取出来
数据的存储(二)(浮点型)(零基础学习C语言)

猜你喜欢

转载自blog.51cto.com/15083388/2629875