本文主要是介绍第一章 计算机硬件基础(定点数与浮点数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数的表示
1、定点数
定点整数
(1)有符号定点整数(XnXn-1…X3X2X1X0)
有符号定点整数是纯整数,小数点在最低位之后,最高位为符号位(Xn)。常用补码表示,也用原码表示。
表示范围:
补码定点整数表示范围:-(-1)~(-1)
例:16bit表示的定点有符号整数:
X15 X0
S |
补码数据格式:数值范围-~-1(减一是因为有个数字0,+0和-0的补码是一样的0000 0000)
原码数据格式:数值范围-(-1)~-1(+0的原码是0000 0000,-0的原码是1000 0000)
原码,补码定点整数分辨率:1
(2)无符号定点整数(XnXn-1…X3X2X1X0)
无符号定点整数没有符号位,所以它的全部数位都用来表示数字,且它的小数点隐含在最低位后,在数码序列中并不存在。
表示范围:这种方法表示数的大小(正负方向),无符号定点整数范围:0~-1
分辨率:精度,1(即最小非零正数)
例:16bit表示的定点无符号整数:
X15 X0
定点无符号数格式:数值范围0~-1
定点小数
带符号定点小数是纯小数。最高位是符号位(X0),小数点位置在符号位之后。小数点之后的内容是数值的有效部分,常称为尾数。
例:X0.X1X2X3X4X5…Xn
原码定点小数表示范围:-(1-)~(1-)
补码定点小数表示范围:-1~(1-)
分辨率:(最小正数)
例:8bit表示的定点有符号小数:
X0 . X1 X15
S |
原码定点小数表示范围:-(1-)~(1-)【1.11…111111~0.11…111111】
补码定点小数表示范围:-1~(1-)【1.000…0000(表示的是-1)~0.1111…111111】
总结:由于补码表示0的唯一性,补码比原码少一个-0的表示,多一个-1的表示。以及负整数表示范围多了一个-
2、浮点数
是一种小数点位置不可固定可随需要浮动的数。
(1)浮点数表示
符号位 | 阶码 | 尾数 |
S | E | M |
按IEEE754标准,32位浮点数的标准格式为:
31 30 23 22 0
S | E | M |
S是浮点数的符号位,占1位,安排在最高位,S=0表示整数,S=1表示负数。
M是尾数,放在低位部分,占用23位,小数点位置放在尾数域最左(最高)有效位的右边。
E是阶码,占8位,采用隐含方式,采用移码方式表示正负指数。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127
一个规格化的32位浮点数x的真值表示为
x = (-1) ^s X(1.M)X 2^(E-127)
e = E - 127
其中尾数域所表示的值是1.M。由于规格化的浮点数的尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。于是用23位字段可以存储24位有效数。
例:若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。
解:将16进制数展开后,可得二进制数格式为
0 100 0001 0011 0110 0000 0000 0000 0000
S 阶码(8位) 尾数(23位)
指数e=阶码-127=10000010-01111111=00000011=3(10)
1.M=1.011 0110 0000 0000 0000 0000=1.011 011
带入公式×1.M×=+(1.011011)×=1011.011(往右移动三位)=(11.375)10
这篇关于第一章 计算机硬件基础(定点数与浮点数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!