『计算机组成原理』数的表示及计算

『计算机组成原理』数的表示及计算

『计算机组成原理』数的表示及计算@[toc]

三、数的表示及计算1.定点数的表示1.原码表示范围:符号位和数据为 i 相对独立

N 位原码表示范围:

二进制形式:[1111….11,01111…111]

整数:$[-(2^{n-1}-1),2^{n-1}-1]$共计:$2^n-1$

小数:$[-(1-2^{-(n-1)}),1-2^{-(n-1)}]$共计:$2^n-1$

因为 0 有两种表示,所以比 N 为能表示的状态少 1 种。

2.补码表示的范围N 位补码表示范围

-4

-2

-1

0

1

2

4

补码

1100

1110

1111

0000

0001

0010

0100

思考:

[1000]补 的真值是谁 ?

是-8,也就是说补码可以表示出比原码多一位的数,而且 0 的表示方法唯一。

考虑 N 为补码的表示形式:

形式

真值 (整数)

真值(小数)

最大正数

011111…1111

$2^{n-1}-1

$1-2^{-(n-1)}$

最大负数

11..11111111

$-2^{n-1}$

$-(1-2^{-(n-1)})-2^{-(n-1)}=-1$

2.定点数运算1.加减运算:补码的加减法基本公式:

[A+B]补=[A]补+[B]补[A-B]补=[A]补+[-B]补优点:直接运算

溢出的判断:双符号位法:两个符号位同时运算,双符号位不同则溢出,上溢和下溢。

2.移位运算逻辑移位: 逻辑左移,逻辑右移移出位移走,补位位补 0

123eg:1010左移:0100右移:0101

循环移位:小循环移位小循环左移,小循环右移移出移入到补位位,同时移入到标记为 C 中在数字最前和最后分别有一个 C 位,储存溢出位

123eg:1010左移:1 0101右移:0101 0

大循环移位:大循环左移,大循环右移移出位移入到 C 位,C 位移入到补位位

123eg:0 1010 左移:1 0100 右移:0101 0

算数移位:(1)保留数值的数学意义,左移相当于乘以 2,右移相当于除以 2(2)存在溢出或精度丧失原码:符号位不动,数值位逻辑左右移补码:带着符号位一起移动移出位移走。补位位:高位补符号位,地位补零。

溢出过半:原码:符号位为 0 或 1,数值位最高位为 1补码:符号位为 0,数值最高位为 1;符号位为 1,数值最高位为 0.

3.浮点数的表示规则:1)组成部分、顺序2)每个组成部分位数3)尾数和阶码表示形式:尾数:定点小数阶码:定点整数

一、IEEE754 标准1.格式:32 位(float)和 64 位(double)2. IEEE 有关阶码的规定(1)用修正过的移码表示修正过的移码可以表示 0 和+-∞;

12float:真值(e)=机器数的值(E)-128double:真值(e)=机器数的值(E)-1024

(2)有关移码$$e=E-2^{n-1}$$

(3)E 位全零或者全 1 的状态都不用

12全0:表示数值0全1:表示+-∞

所以正式的 IEEE754 标准:$$e=E-(2^{n-1}-1)$$

3. IEEE 有关尾数的规定(1)用修正过的原码表示尾数(2)最高数值位必须为 1,并且省略。==这样进一步提高了数据的精度。==(3)什么是规格化的尾数(M)$$|M|>=1/2=(0.1)_2$$

因为尾数最高的数值位为 1,并且省略。E:阶码S:符号位M:尾数float:$(-1)^s1.M2^{E-127}$double:$(-1)^s1.M2^{E-1023}$

4. IEEE 与真值的相互转换eg:Float 类型 413C0000H 的真值是多少:

$413C0000H=(0100 0001 0011 1100 0000 0000 0000 0000)_2$

$S=0;M=0111;E=1000 0010$

$e=(-1)^s1.M2^{E-127}$$=(-1)^01.011112^{130-127}$$=(1011.11)_2$$=11.75$

5. Float 类型的表示范围二、非 IEEE754 标准

1.有机组成部分每部分可以用不同的编码表示,最常见的阶码和尾数都用补码表示。

2. 表示范围(1)为什么要规格化?==为了进一步提高数据精度==(2)规格化的本质是什么?$$|尾数|>=0.5$$

(3)这种本质的体现是什么?尾数分别用原码和补码表示的时候规格化的尾数是什么形式的?原码:数值最高位为 1补码:1.0xxxxx 或者 0.1xxxxx 或者 1.1xxxxx

(4)IEEE754 标准如何做的规划化?==尾数最高的数值位为 1,并且省略。==

设某浮点数阶码和尾数都用 4 位二进制补码表示。

4.浮点数的运算一、IEEE754 标准的加减运算(1)0 操作数检查(2)对阶:小阶向大阶对齐,尾数右移(3)尾数加减:补码双符号位(4)规格化: 左规;右规

12左规:尾数+-不发生溢出,结果不是规格化,左规尾数不定,阶码-1,知道规格化为止;右规:尾数+-发生溢出,带两个符号位右移移位,阶码+1

(5)舍入,阶码采用补码双符号位运算。==0 舍 1 入。==(6)判断溢出在溢出判断中,什么样的情况才算溢出?==阶码溢出才叫溢出==尾数溢出是否标志着结果的溢出?==尾数溢出不表示结果的溢出==

相关推荐

公基小课堂---你傻傻分不清的公文文种
淘宝推出「送礼物」功能:领取时限24小时,春节「送礼大战」愈演愈烈
部首为足的汉字

部首为足的汉字

01-01 👁 9396