定点数和浮点数

定点数

小数位固定不变的数叫做定点数

定点数有三种类型

(1)无符号定点整数(Unsigned fixed point integer)

定义:无符号定点整数没有符号位,所以它的全部数位都用来表示数字,且它的小数点隐含在最低位后,在数码序列中并不存在。

对于某种数的表示方式,我们关心两点:

  • 1.表示范围:这种方法表示数的大小(正负方向),无符号定点整数范围:0~2n-1
  • 2.分辨率:精度,1(即最小非零正数)

代码序列:XnXn-1...X1X0表示无符号定点整数,则有n+1位正整数

典型值 真值 代码序列
最大正整数 2n+1-1 11...11
最小非零正数 1 00...01

(2)带符号定点整数

定义;带符号定点整数是纯整数,小数点在最低位之后,最高位为符号位。常用补码表示,也用原码表示。

代码序列:XnXn-1...X1X0表示带符号定点整数,Xn是符号位

原码定点整数表示范围:-(2n-1)~(2n-1)

补码定点整数表示范围:-2n~(2n-1)

源码,补码定点整数分辨率:1

(3)带符号定点小数

定义:带符号定点小数是纯小数,

代码序列:X0.X1...Xn

最高位X0是符号位,小数点位置在符号位之后,X1...Xn是数值的有效部分,常称尾数,X1称为最高数位或最高有效位

原码定点小数表示范围:-(1-2-n)~(1-2-n)

补码定点小数表示范围:-1~(1-2-n)

分辨率:2-n

定点小数的位置是固定的,不需要我们专门设置,在实际中并不存在。

浮点数

定义:是一种小数点位置不固定可随需要浮动的数

(1)浮点数表示

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

(2)移码(增码)

移码的数值表示就是补码的符号位变反了。

 

例题:某浮点数如上面的浮点数的表示,字长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

(5)IEEE754标准浮点格式

规格化要求: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

 

 

原文地址:https://www.cnblogs.com/Mayfly-nymph/p/11090241.html