注:该内容是观看大学mooc之后做的笔记,便于之后的复习,以及初学时的理解。
定点与浮点数据表示:
1定点数据表示:
(1)可表示定点小数和整数
(2)表示形式X0.X1X2X3X4.......Xn
(3)定点小数表示数的范围:定点小数和定点整数的取值范围-CSDN博客
(这个慕课课程写的太简略了,这个链接下的是详细的,你们可以去看看)
(4)定点整数表示数的范围:定点小数和定点整数的取值范围-CSDN博客
(5)定点数据表示数的不足:数据表示范围受限(受到字长制约)
字长:在计算机中作为一个整体被存取、传送、处理的二进制数字符串的长度
这是大佬总结的感觉能理解懂,这是链接:
2浮点数表示:
把数的范围和精度分别表示的一种数据方法
浮点数使用场合:当数的表示范围超过了定点数能表示的范围时
(1)格式(一般格式):
EsE1E2E3......EnMsM1M2M3......Mk
该数可表示为:
E:表示阶码位数,决定数据的范围
M:尾数位数,决定数的精度
计算机的字长是固定的,分配给阶码的字长越多,那么分配给尾数的字长就越少
一般表示方法的缺点很大:如用该模式表示数据:
但并不是所有计算机都是这样识别的,因此这种模式的数据移植性太差
(2)IEEE 754格式:
符号位 | 8位偏指数E | 23位有效尾数M | 单精度 | 共32位 |
符号位 | 11位偏指数 | 52位有效尾数M | 双精度 | 共64位 |
其中,指数采用偏移值,其中单精度的偏移值为127位,双精度的偏移值为1023位,将浮点数的阶码值变成非负数,便于浮点数的比较和排序
S | 8位偏指数E | 23位有效尾数M | 单精度 |
与上述IEEE754格式相对应的32位浮点数的真值可表示为:
N=×
×1.M
当S=0时(-1)^0为1,此时为正数,当S=1时(-1)^1为-1,此时为负数,因此S控制数据正负为符号位,E在保存的时候加了127,所以在计算时要减去127,详情看:计算机组成原理:IEEE754标准中,为什么指数真值e变成阶码加上的偏移值是127不是128?_ieee754为什么阶码偏移是127-CSDN博客
随E和M的取值不同,IEEE754浮点数据表示具有不同的意义
当E=0,M=0:表示机器零
当E=0,M≠0:则N=×
×0.M,非规格化的浮点数
当1<=E<=254:N=×
×1.M,规格化的浮点数
当E=255,M=0:无穷大的数,对应x/0(其中x≠0)
当E=255,M≠0,N=NaN,表示一个非数值,对应于0/0
将N=×
×1.M中的N转化位IEEE754步骤:
(1)先将N变换成=×
×1.M
(2)E=e+011 1111(0111 1111转化成十进制为127)
(3)保存S、E、M
即可得到这个真值对应的单精度IEEE754
单精度IEEE754转换成真值与上方过程相反