小数位固定不变的数叫作定点数源码
定点数有三种类型table
定义:无符号定点整数没有符号位,因此它的所有数位都用来表示数字,且它的小数点隐含在最低位后,在数码序列中并不存在。二进制
对于某种数的表示方式,咱们关心两点:方法
代码序列:XnXn-1...X1X0表示无符号定点整数,则有n+1位正整数tab
典型值 | 真值 | 代码序列 |
最大正整数 | 2n+1-1 | 11...11 |
最小非零正数 | 1 | 00...01 |
定义;带符号定点整数是纯整数,小数点在最低位以后,最高位为符号位。经常使用补码表示,也用原码表示。移动
代码序列:XnXn-1...X1X0表示带符号定点整数,Xn是符号位poi
原码定点整数表示范围:-(2n-1)~(2n-1)block
补码定点整数表示范围:-2n~(2n-1)浮点数
源码,补码定点整数分辨率:1浮动
定义:带符号定点小数是纯小数,
代码序列:X0.X1...Xn
最高位X0是符号位,小数点位置在符号位以后,X1...Xn是数值的有效部分,常称尾数,X1称为最高数位或最高有效位
原码定点小数表示范围:-(1-2-n)~(1-2-n)
补码定点小数表示范围:-1~(1-2-n)
分辨率:2-n
定点小数的位置是固定的,不须要咱们专门设置,在实际中并不存在。
定义:是一种小数点位置不固定可随须要浮动的数
N=REx M
Ef | E1 | ... | Em | Mf | M1 | M2 | ... | Mn |
阶码E,Ef为阶符
尾数M,Mf为数符
对尾数的规格化要求
若以R=2为基底
浮点数用原码表示,则须要:1/2 <= |M| < 1,此时最高有效位始终为1;
浮点数用补码表示,则须要:-1<= M < -1/2或1/2<=M<1,前者最高有效位为1,后者为0
对于正数,规格化特征是M1=1
移码的数值表示就是补码的符号位变反了。
例题:某浮点数如上面的浮点数的表示,字长32位阶码8位,含1位阶符,补码表示以2为;尾数24位,含一位数符,补码表示,规格化。若浮点数代码为(A3680000)16,求真值N
(A3680000)16=(10100011,01101000...0)2
阶码长度为8位,4位二进制表示1位十六进制,总共两位十六进制,所以A3表示阶码,第一位表示符号位,1为负数
由于阶码是补码表示,因此咱们须要转换为原码
E=-(1011101)2 =-(93)10
M=(0.1101000..0)2=(0.8125)10
N=2-93x0.8125
将-(1011.11010...0)2写成浮点数代码F
N=-(1011.11010...0)2
=-(0.101111010...0)2x24
E=(4)10=(00000100)2
M补=(1.010000110...0)2
因此F=(00000100,1010000110...0)2=(04A18000)16
规格化要求:0<=|M|<1
例题:将十进制数20.59375转换成符合IEEE754格式的32位短浮点数,写出其二进制代码,并转换成十六进制代码
1.分别转换整数部分和小数部分为二进制20.59375=10100.10011
2.移动小数,使其在第一位与第二位之间
10100.10011=1.010010011x24
获得阶码:E=4
3.尾数符号位为正数,即0 阶码表示成移码:E=4+127=131=1000 0011
尾数M=0 1001 0011
4.因此F=(0100 0001 1010 0100 1100 0000 0000 0000 )2
=(41A4C000)16