计算机组成原理题

23
郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1 计算机组成原理 数字电路 计算机组成原理的基础知识是:数字电路。 通过数字电路的门电路、触发器、移位寄存器、译码器、时序电路等这 些部件,来构成计算机的某些部件。 两种最基本的门电路 :与非门 ,或非门:两路输入都高,输出才为低。 模拟电路处理的是模拟信号;数字电路处理的是数字信号。 逻辑运算: 异或:输入二变量相异为 1,相同为 0同或:输入二变量相异为 0,相同为 1异或电路的特殊功能:奇偶检测电路 奇数个 1相异或结果为 1。偶数个 1相异或结果为 0布尔代数运算的基本依据是以下的基本公式和规则: 变换律 A+B=B+A A·B=B·A 结合律 A+(B+C)=(A+B)+C A·(B·C)=(A·B)·C 分配律 A+B·C=(A+B)·(A+C) A·(B+C)=A·B+A·C 吸收律 A+A·B=A A·(A+B)=A 第二吸收律 A+A·B=A+B A·(A+B)=A·B 反演律 A+B=A·B A·B=A+B 包含律 A·B+A·C+B·C=A·B+A·C 3 月份复习资料 整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28 1 1

Transcript of 计算机组成原理题

Page 1: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

计算机组成原理

数 字 电 路

计算机组成原理的基础知识是:数字电路。

通过数字电路的门电路、触发器、移位寄存器、译码器、时序电路等这

些部件,来构成计算机的某些部件。

两种最基本的门电路 :与非门 ,或非门:两路输入都高,输出才为低。

模拟电路处理的是模拟信号;数字电路处理的是数字信号。

逻辑运算:

异或:输入二变量相异为 1,相同为 0。

同或:输入二变量相异为 0,相同为 1。

异或电路的特殊功能:奇偶检测电路

“奇数个 1” “相异或结果为 1” “。偶数个 1” “相异或结果为 0”。

布尔代数运算的基本依据是以下的基本公式和规则:

变换律 A+B=B+A A·B=B·A

结合律 A+(B+C)=(A+B)+C A·(B·C)=(A·B)·C

分配律 A+B·C=(A+B)·(A+C) A·(B+C)=A·B+A·C

吸收律 A+A·B=A A·(A+B)=A

第二吸收律 A+A·B=A+B A·(A+B)=A·B

反演律 A+B=A·B A·B=A+B

包含律 A·B+A·C+B·C=A·B+A·C

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

1

1

Page 2: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

(A+B)·(A+C)·(B+C)=(A+B)·(A+C)

重叠律 A+A=A A·A=A

互补律 A+A=1 A·A=0

0-1律 0+A=A 1·A=A

0·A=0 1+A=1

任何一个函数都可展开为若干个最小项之和 ;卡诺图可以表示任意一

个逻辑函数。

计算机的逻辑部件

计算机的逻辑部件分为以下在三种:

1、组合逻辑电路(没有记忆功能)

2、时序逻辑电路(具有记忆功能)

3、阵列逻辑电路(集成电路)

组合逻辑电路的输出状态只取决于当前输入信号的状态,与过去输

入信号的状态无关,即没有记忆功能。

时序逻辑电路的输出状态不仅和当时输入信号的状态有关,还与以

前输入信号的状态有关,即有记忆功能。

加法器是计算机中最常用、最基本的组合逻辑电路。主要完成两个补

码数据的相加运算。

时序逻辑电路(具有记忆功能)

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

2

2

Page 3: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

触发器是时序电路内存储数据的记忆元件,构成时序电路基础。

寄存器:用于暂时存放指令和数据;

计数器:是计算机和数字仪表中常用电路。

计 算 机 运 算 方 法

一.概念:

1)机器数的表示方法:原码:一个符号 + 数据的绝对值。

反码:正数:数值部分与真值形式相同;负数:真值的数值部分按

位取反。

补码:正数补码与原码相同。

负数补码的数值部分等于二进制位按位取反,末位加 1。

移码:

1.最高位符号位,1 表示正号,0 表示负号。如果是双符号位,最高

位保持 0:01 正数,00 负数。

溢出判断:最高位为 1,10 上溢,11 下溢。

2.在计算机中,移码只执行加减法运算,且运算结果+2n 修正;

即对结果的符号位取反,得到[X]移。

2)字符的表示方法:

现代计算机不仅仅是处理数值领域的问题,还有大量非数值数据,

比如:文字、字母及专用符号来表示文字语言,逻辑语言等信息。国

际上广泛采用美国国家信息交换标准代码 -- ASCII(128 字符)

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

3

3

Page 4: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

字符串是指连续的一串字符,它们占用主存中连续个存储单元 .

每个字节存放一个字符( 字符以 ASCII 码表示 )

3)汉字的表示方法:(了解)

汉字编码方法:

数字编码(区位码,国际区位码)

拼音码 (以汉语拼音基础的输入方法)

字形码 (五笔字形输入法)

汉字的存储有两方面的含义:字形码的存储和汉字内码存储。

字形码是一汉字点阵表示的汉字字形代码,它是汉字的输出形式存

储。

4)校验码

数据在计算机中存取、传送,要求绝对正确,如果某一位出错,就不

能得到正确的结果,但实际上由于某种随机干扰容易发生错误。

为了发现和校正错误,计算机广泛采用容错技术,现在的检验办法

大多采用“冗余校验”:原始数据 + 校验位(冗余部分)

将原始数据和校验位一起按某种规律编码,存入存储器或向外发送。

当从存储器读出或者接收代码时,按同一编码规律进行译码或计算。

然后,取出原始数据,判断传输过程中是否有错,哪一位出错了。

介绍三种常用的校验码:

1)奇偶检错码:用于并行数据传送中,发现一位数据出错,没有纠

错能力。发送端产生一个检验位,使“1”的个数是奇数(或偶数)并

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

4

4

Page 5: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

一起发送。接收端对读出或接收到的数据要进行奇偶性判别。若奇偶

性规则被破坏,则出错,否则为正确。

2)海明检错与纠错码:用于并行数据传送中,发现一位或两位数据

出错,并纠错。为 k 个数据位设立 r 个检验位。使 k+r 位组成的码字

同时具有两个特性:1)能发现 k+r 位中任何一位出错,并改正 ;

2)能发现 k+r 位中任何两位同时出错,无法纠正。海明码字 = 数

据 + 校验位 = HmHm-1…H2H1 (m=校验位 r+数据位 k)每个校验

位 Pi 在海明码中被分在位号 2i-1 的位置, 其余各位为数据位,按从

低向高逐位依次排列。

3)循环冗余码:用于串行数据传送中,在网络传送数据时多用。(了

解)

二 .定点加减运算

直接采用原码运算是不行的!

处理负数运算太复杂!

“补”的启示:减法操作可以用加法操作来代替。也就是负数用补码

表示时,可以把减法转化为加法。在计算机中实现起来就比较方便。

1)补码加减运算公式

[x +y ]补= [x]补 + [y]补(mod M)

[x -y ]补= [x]补 + [-y]补(mod M)([ -Y ]补等于[ Y ]同符号位在内求反

加 1.)

在运算过程中 , 寄存器的位数一旦确定下来,就有了容量的限制,

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

5

5

Page 6: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

数值表示的范围就固定了。如果运算过程中数值位超出了机器允许表

示的范围,跑到符号位上从而改变了符号的性质,就产生溢出。计算

机只能判断溢出,不能处理溢出!

现在几乎所有的计算机都是采用补码运算!

所以,我们研究运算方法和运算器时,只研究补码运算!

2)定点乘法运算

原码一位乘法

两个原码表示的数相乘,它的运算规则是:

乘积的符号位 = 两数的符号相异或

乘积 = 两数的绝对值相乘

为了在机器中实现乘法运算,运算器必须设置三个寄存器 A、B、C。

寄存器 A 存放部分积(初始为 0,最后存放乘积的高位部分)

寄存器 B 存放被乘数 X(运算过程中不变)

寄存器 C 存放乘数 Y(判断后不再保留,最后存放乘积的低位部分)

补码一位乘法

比较乘数相邻两位 Yn+1 和 Yn,于是补码一位乘法法则为:

判断位

Yi Yi+1 操作内容

00 部分积 + 0, 右移 1 位

11 部分积 + 0, 右移 1 位

10 部分积 +[-X]补, 右移 1 位

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

6

6

Page 7: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

01 部分积 +[X]补, 右移 1 位

1)被乘数 X 与 部分积 P 取双符号位,并参加运算。

2)乘数 Y 末增设 Yn+1=0 ;设部分积初始=0。

3)根据 Yn,Yn+1 判断位,进行 n+1步加法,最后一步不移位。

补码两位乘法法则为:Yn-1 Yn Yn+1 组 合

值 部分积

0 0 0 0 2-2 {部分积 + 0}0 0 1 1 2-2 {部分积 +[X]补}0 1 0 1 2-2 {部分积 +[X]补}0 1 1 2 2-2 {部分积 + 2[X]补}1 0 0 -2 2-2 {部分积 + 2[-X]补}1 0 1 -1 2-2 {部分积 +[-X]补}1 1 0 -1 2-2 {部分积 +[-X]补}1 1 1 0 2-2 {部分积 + 0}

1)初始设置:设部分积为 0,Yn+1=0

2)符号参加运算:设置部分积与被乘数三个符号位。

乘数 Y 数值部分为偶数设两个符号位;为奇数设一个符号位;

3)运算步骤:根据 Yn-1, Yn, Y n+1 判断操作;

4)最后一步:乘数 Y 数值部分为偶数最后一步不移位;为奇数最后

移一位。

定点除法运算

原码一位除法(不常用的方法略去不讲)

加减交替法的规则如下:

余数为正,商 1,左移一位,减去除数;

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

7

7

Page 8: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

余数为负,商 0,左移一位,加上除数。

但若最后一次上商为 0,则仍需恢复余数。

补码一位除法

一开始就将被除数 X 当作初始余数 R0,R0 与 Y 同号商 1,异号商

0,得的假商最后求反进行校正

商的校正:

商符取反,商末位恒置 1。

浮点运算

浮点加减运算

1) “对大阶”操作

对大阶:使两数的阶码值相等。

求阶码差 Δj,Δj≠0 时,小阶码的尾数右移 Δj 位:阶码 +Δj,

2) 尾数的加 /减运算

两尾数进行加 /减运算。

3) 规格化操作

尾数符号 01 或 10:尾数溢出。右规:尾数右移 1 位,阶码+1。 尾

数符号 00 或 11:尾数不溢出。但如最高数值位与符号位相同: 00 0

或 11 1

左规:尾数连续左移直到最高数值位与符号位不同为止

(00 1,11 0)同时从阶码中减去移位的位数。

4) 舍入(处理多余位)

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

8

8

Page 9: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

在执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度

受到影响,常用“0”舍“1”入法。 (三种舍去法:恒舍去,末位恒

置 1,0舍 1 入; 取其精度受影响最小的方法)

5) 检查阶码是否溢出

在规格化和舍入时都可能发生溢出,

若阶码符号 10 为下溢,置运算结果为零,

若阶码符号 01 为上溢,置溢出标志。

例: 已知 X = 0.11011011 * 2010, Y = - 0.10101100 * 2100 求 X + Y

解: ① 对大阶:[ jX]补 = 00 0010 [ jY]补 = 00 0100 [- jY]补

= 11 1100

求阶差 Δj=[jX]补+[- jY]补 = 00 0010 + 11 1100 = 11 1110 (-2)

X 的阶码小:X阶码 + 2 ( [jX]补 = [ jY]补 = 00 0100 )X

的尾数右移 2 位,前面补符号位

[SX]补= 00 0011011011(此时保留右移数据,不丢不舍)

② 尾数相加[SX]补 =[SX]补 +[SY]补 = 00 0011011011

+1101010100

= 11 10001010 11

③ 规格化操作:左规: 数值位左移 1 位= 11 000101011

阶码 - 1([jX]补= 00 0011)

④ 舍入:舍去的附加位最高位为 1,结果最低位+1:

[Sx]补=11 00010110 S= - 0.11101010

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

9

9

Page 10: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

⑤ 判溢出 阶码符号为 00,不溢出。 最终结果为: X+Y = -

0.11101010 * 2011

浮点乘除运算

1)阶码加减: 乘法:jX + jY ,除法: jX - jY

2)尾数乘除: 乘法: SX * SY ,除法: SX / SY

3)规格化处理;

4)舍入操作: 有可能带来又一次规格化;

5)判溢出:检查阶码上下溢出。

例 . 求 X*Y,

X = 0.0110011 * 2 -5

Y = - 0.1110010 * 2 3

[jX]补= 1 011 [jX]移= 0 011 [jY]补= 0 011 [jY]移= 1 011

[SX]补= 0.0110011 [-SX]补=1.1001101 [SY]补=1.0001110

[X]浮 = 0 011,0.0110011

[Y]浮 = 1 011,1.0001110

1)阶码相加: [ jX + jY ]移 = [ jX ]移 + [ jY ]补

= 0 011 + 0 011 = 0 110

2)尾数相乘: [SX]补 * [SY]补= 0.0110011 * 1.0001110

= 1.10100101001010

[XY]浮 = 0 110, 1.10100101001010

3)规格化处理:

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

10

10

Page 11: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

符号位与最高数值位相同,需要规格化(尾数左移一位,阶码-1)

[XY]浮 = 0.101, 1.01001010010100

4)舍入操作:

尾数设 8 位,0舍 1 入,则 [XY]浮 = 0 101, 1.0100101

5)判溢出:

阶码两符号位相同,不溢出。

典 型 例 题

1、原码加减法是指( )。

A. 操作数用原码表示,连同符号位直接相加减

B. 操作数取绝对值,直接相加减,符号位单独处理

C. 操作数用原码表示,尾数直接相加减,符号位单独处理

D. 操作数用原码表示,根据两数符号决定实际操作,符号位单独处理

【分析】用原码进行加减法运算时,如果两数同号则数值相加;如果是异号要进

行减法。反之,用原码做减法时,要比较两个操作数的绝对值大小,然后用大数

减去小数,最后给结果选择恰当的符号。

【答案】 D

2、如果 X 是负数,由[X]补

求[-X]补是将( )。

A. [X]补各值保持不变

B. [X]补符号位变反,其他各位不变

C. [X]补除符号为外,各位变反,末位加 1

D. [X]补连同符号位一起各位变反,末位加 1

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

11

11

Page 12: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

【分析】已知[X]补求[-X]的方法是:将[X]补同符号位一起求反,末位加“1”。

【答案】D

3、若用双符号位,则发生正溢的特征是:双符号位为( )。

A. 00 B. 01 C. 10 D. 11 【分析】双符号位的几种取值及溢出种类如下:

CA

CB=00 结果为正数,无溢出

CA

CB=01 结果上溢(正溢)

CA

CB=10 结果下溢(负溢)

CA

CB=11 结果为负数,无溢出

【答案】B

4、若阶码为 3 位,用补码表示;尾数 7 位,用原码表示,其中一位为符号位;

以 2 为为底。则十进制数 27/64 的浮点规格化数是( )。

A. 0101011011 B. 0100110110 C. 0111110110 D. 0001011011

【分析】27/64 不必转化为小数再用乘 2 取反的方法转换成二进制小数,直接将

00011011(即 27)左移 6 位后即得到所需的二进制小数。

【答案】B

5、在补码一位乘法中,A 补是累加和,X 补是被乘数,Y 补是乘数,当判断位

YnYn+1

=01 时,执行的运算是( )。

A. 1/2(A 补+Y 补) B. 1/2(A 补-Y 补)C. 1/2(A 补+X 补) D. 1/2(A 补-Y 补)

【分析】判断位的取值及对应的操作如下:

YnYn+1=00, 部分积、乘数右移一位

YnYn+1=01, 部分积加[X]补后右移一位

YnYn+1=10, 部分积加[-X]补后右移一位

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

12

12

Page 13: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

YnYn+1=11, 部分积、乘数右移一位

【答案】C

6、下列运算步骤中,浮点乘法不需要的步骤是( )。

A.对阶 B.阶码相加 C.尾数相乘 D.结果规格化

【分析】浮点数加、减法才需要对阶操作。

【答案】A

7、(1) X=0.1001 Y=0.0101,求 X+Y=?

(2) X=+0.1011 Y=-0.0101,求 X+Y=?

【分析】利用补码的加法公式进行运算。

补码加法公式:[X+Y]补=[X]补+[Y]补

【答案】(1)[X]补=01001,[Y]补=00101

[X+Y]补=[X]补+[Y]补=01110

所以 X+Y=+0.1110

(2)[X]补=01011,[Y]补=11011

[X+Y]补=[X]补+[Y]补=00110

所以 X+Y=+0.0110

8、(1)X=+0.1101, Y=+0.0110,求 X-Y=?

(2)X=-0.1101, Y=-0.0110,求 X-Y=?

【分析】利用补码的减法公式进行运算。

补码减法公式:[X-Y]补=[X+(-Y)补]=[X]补+[-Y]补

【答案】(1)[X]补=01101,[Y]补=00110,[-Y]补=11010

[X-Y]补=[X]补+[-Y]补=00111

所以 X-Y=+0.0111

(2)[X]补=10011,[Y]补=11010,[-Y]补=00110

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

13

13

Page 14: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

所以 X-Y=-0.0111

9 、 已 知 X=-0.01111 , Y=+0.11001 , 求 [X] 补 , [-X] 补 , [Y] 补 , [-Y] 补 ,

X+Y=?,X+Y=?

【分析】按照补码加减法公式分别求出 X+Y 和 X-Y,再根据结果的双符号位确定

是否发生了溢出。

【答案】[X]原=1.01111 [X]补=1.10001 [-X]补=0.01111

[Y]原=0.11001 [Y]补=0.11001 [-Y]补=1.00111

用补码表示 X 和 Y 的补码,并进行加、减运算,如下所示:

[X]补 11.10001 + [Y]补 00.11001

[X+Y]补 00.01010

所以 X+Y=+0.01010

符号位相同,没有发生溢出。 [X]补 11.10001 + [-Y]补 11.00111

[X-Y]补 10.11000因为符号位相异,所以结果发生溢出。

10、已知 X 和 Y,用变形补码计算 X-Y,同时指出运算结果是否溢出。

(1) X=+0.11011 Y=-0.11111 (2) X=+0.10111 Y=+0.11011

【分析】将 X 和 Y 分别以补码表示,并分别相减,根据最后的符号位判断溢出。

【答案】(1) [X]补 = 00.11011

+ [-Y]补 = 00.11111 [X-Y]补 = 01.11010 两位符号位不同,产生溢出。(2) [X]补 = 00.10111 + [-Y]补 =11.00101 [X-Y]补 = 11.111003 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

14

14

Page 15: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

结果的符号位相同,无溢出,X-Y = -0.00100

11、试用原码一位乘法计算 Z=X×Y, X=0.1101, Y=-0.0111,列出计算过程。

【分析】原码一位乘法的基本规则是:两操作数绝对值相乘,符号位则按照“同

号相乘为正,异号相乘为负”的原则处理。

【答案】(1) 计算符号位 Zf = X f Y f = 0 1 = 1.

(2) 两数绝对值的原码为: [ X ]原=0.1101, [ Y ]原=0.0111 。

高位部分积 乘数 说明

0.0 0 0 0 0 1 1 1 起始情况

+ 0.1 1 0 1 乘数最低位为 1,加 X

0.1 1 0 1

0.0 1 1 0 1 0 1 0 1(丢失) 右移部分积和乘数

+ 0.1 1 0 1 乘数最低位为 1,加 X

1.0 0 1 1

0.1 0 0 1 1 1 0 1 1(丢失) 右移部分积的乘数

+ 0.1 1 0 1 乘数最低位为 1,加 X

1.0 1 1 0

0.1 0 1 1 0 1 1 0 1(丢失) 右移部分积和乘数

+ 0.0 0 0 0 乘数最低位为 0,加 0

0.1 0 1 1

0.0 1 0 1 1 0 1 1 0(丢失) 右移部分积和乘数

[ X ×Y ]原=0.01011011,X×Y=-0.01011011

12、已知 x=-0.1101, y=0.1011。试用补码一位乘法求 x×y=?

【分析】根据 Booth算法进行补码一位乘法的计算,按照判断位的取值决定下

一步如何操作。

【答案】被乘数用双符号位法表示[X]补=11.0011,[-X]=00.1101;乘数只需要

一个符号位,[Y]补=0.1011。

部分积 乘数 附加位 说明

0 0.0 0 0 0 0.1 0 1 1 0 Y4Y

5=10,+[-X]补

+[-X]补 0 0.1 1 0 1

0 0.1 1 0 1

→ 0 0.0 1 1 0 1 0 1 0 1 1 部分积右

移一位

+0 0 0.0 0 0 0 Y4Y

5=11,

+03 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

15

15

Page 16: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

0 0.0 1 1 0

→ 0 0.0 0 1 1 0 1 0 1 0 1 部分积右

移一位

+[X]补 1 1.0 0 1 1 Y4Y

5=01,+

[X]补

1 1.0 1 1 0

→ 1 1.1 0 1 1 0 0 1 0 1 0 部分积右移一位

+[-X] 补 0 0.1 1 0 1

Y4Y

5=10,+[-X]补

0 0.1 0 0 0

→ 0 0.0 1 0 0 0 0 0 1 0 1 部分积右

移一位

+[X]补 1 1.0 0 1 1 Y4Y

5=01,+[X]补

1 1.0 1 1 1

所以[X×Y]补=1.01110001, X×Y=-0.10001111。

13、已知 X=0.1101,Y=-0.0111 用原码加减交替法计算 Z= Y÷X。

【分析】根据原码加减交替法的运算规则进行运算。

【答案】(1)计算符号位:Zf

= Xf Y

f =01=1。

(2)两数绝对值的原码为:

[ X ]原=00.1101[ Y ]原=00.0111[- X ]补=11.0011 被除数 商 说明

0 0 0 1 1 1 0 0 0 0 起始情况

+ 1 1 0 0 1 1 -X

1 1 1 0 1 0 0 0 0 0 0 余数负,商 0

1 1 0 1 0 0 0 0 0 0 余数、商左移一

+ 0 0 1 1 0 1 + X

0 0 0 0 0 1 0 0 0 0 1 余数正,商 1

0 0 0 0 1 0 0 0 0 1 余数、商左移一

+ 1 1 0 0 1 1 - X

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

16

16

Page 17: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

1 1 0 1 0 1 0 0 0 1 0 余数负,商 0

1 0 1 0 1 0 0 0 1 0 余数、商左移一

+ 0 0 1 1 0 1 + X

1 1 0 1 1 1 0 0 1 0 0 余数负,商 0

1 0 1 1 1 0 0 1 0 0 余数、商左移一位

+ 0 0 1 1 0 1 + X

1 1 1 0 1 1 0 1 0 0 0 余数与 X同号商

0

+ 0 0 1 1 0 1 余数负,需+X修正

0 0 1 0 0 0 0 1 0 0 0

计算结果:[Y÷X]原=1 1000,符号位为负。

14、用补码加减交替法求 X÷Y=?X=0.1000 Y=-0.1010.

【分析】根据补码加减交替法的运算规则进行运算,首先需要将被除数和除数变成补

码的形式,并求出除数相反数的补码形式。

【答案】首先将参与运算的两个数写成补码形式:

[X]补=00.1000, [Y]补=11.0110, [-Y]补=00.1010,运算过程如下:

被除数 X/余数 r 商 说明

0 0 .1 0 0 0 [X]补=0与[Y]补异号,商 0,+[Y]

补 + [Y]补 1 1 .0 1 1 0 0

1 1 .1 1 1 0 余数与除数同号,左移 1 位,商

1,

← 1 1 .1 1 0 0 +[-Y]补

+[-Y]补 0 0 .1 0 1 0 01

0 0 .0 1 1 0 余数与除数异号,左移 1 位,商

0,

← 0 0 .1 1 0 0 +[Y]补

+[Y]补 1 1 .0 1 1 0 010

0 0 .0 0 1 0 余数与除数异号,左移 1 位,商

0,

← 0 0 .0 1 0 0 +[Y]补

+[Y]补 1 1 .0 1 1 0 0100

1 1 .1 0 1 0 余数与除数同号,左移 1 位,商

1,

← 1 1 .0 1 0 0 +[-Y]补

+[-Y]补 0 0 .1 0 1 0 01001

1 1 .1 1 1 0

← 1 1 .1 1 1 0 1.0010

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

17

17

Page 18: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

得到商[q]补=1.0010+0.0001 (校正量)=1.0011 所以 q=-0.1101

余数 r=2 -4(0.0010)=0.00000010.

15、已知:X=0.111011×2+101 ,Y=0.110101×2+011,求 X+Y=?

【分析】浮点数的加法(减法)分为 5个步骤,即对阶、尾数求和(差)、

规格化处理、舍入处理和判断溢出。计算时要严格按照这 5个步骤进

行。

【答案】(1)对阶。

△ E=Ex-Ey=0010

即两浮点数的阶差为 2,Y 的阶码值较小,应将 Y 的尾

数 右 移 2 位 且 阶 码 值 加 2 , 对 阶 后 Y 的 值 为 :

Y=0.110101×20011=0.00110101×20101

(2)求和(差)运算。

将经过对阶操作后的两浮点数的尾数直接进行加法 (或减法)运算,得到和

数(或差数)的尾数。本例两数采用双符号位表示,则:

0 0 .1 1 1 0 1 1

+ 0 0 .0 0 1 1 0 1 0 1

0 1 .0 0 1 0 0 0 0 1

所以,X+Y=01.00100001×20101

(3)规格化处理。

本例运算结果尾数两符号位值为 01,说明尾数溢出,需做右规处理。尾数向

右移 1位,其阶码值加 1.即:

X+Y=01.00100001×20101

右规,尾数右移 1位,阶码加 1

X+Y=00.100100001×20110

(4)舍入处理。

采用恒置 1 舍入法,则结果为:

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

18

18

Page 19: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

X+Y=00.100101×20110

(5)判断溢出。

本例阶码若用 4位表示第一位为符号位。阶码结果 0110 未超出所能表示的

最大值,所以没有发生溢出,因此最终结果为:

X+Y=00.100101×20110

习 题

一、选择题

1、X=+0.1011,Y=+0.0110,则用补码运算[X-Y]补=( )

A.0.0101 B.0.0001 C. 1.1011 D.1.1111 2

、在原码一位乘法中,当乘数 Yi 为 1 时,( )。

A.被乘数连同符号位与原部分积相加后,右移一位;

B.被乘数绝对值与原部分积相加后,右移一位;

C.被乘数连同符号位右移一位后,再与原部分积相加;

D.被乘数绝对值右移一位后,再与原部分相加。

3、原码乘法是( )。

A.先取操作数绝对值相乘,符号位单独处理;

B.用原码表示操作数,然后直接相乘;

C.被乘数用原码表示,乘数取绝对值,然后相乘;

D.乘数用原码表示,被乘数取绝对值,然后相乘。

4、原码加减交替除法又称为不恢复余数法,因此( )。

A.不存在恢复余数的操作;

B.当某一步运算不够减时,做恢复余数的操作;

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

19

19

Page 20: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

C.仅当最后一步余数为负时,做回复余数的操作;

D.当某一步余数为负时,做恢复余数的操作。

5、浮点数加减中的对阶是( )。

A.将较小的一个阶码调整到与较大的一个阶码相同;

B.将较大的一个阶码调整到与较小的一个阶码相同;

C.将被加数的阶码调整到与加数的阶码相同;

D.将加数的阶码调整到与被加数的阶码相同。

6、若浮点数用补码表示,则判断运算结果是否为规格化的方法是( )。

A.阶符与数符相同为规格化数;

B.阶符与数符相异为规格化数;

C.数符与尾数小数点后第一位数字相异为规格化数;

D.数符与尾数小数点后第一位数字相同为规格化数。

7、下列运算步骤中,浮点乘法不需要的步骤是( )。

A.对阶 B.阶码相乘 C.尾数相乘 D.结果规格化

8、运算器虽有许多部件组成,但核心部分是( )。

A. 数据总线 B.算术逻辑单元 C.多路开关 D.通用寄存器

9、下列有关运算器的描述中,( )是正确的。

A.只做算术运算,不做逻辑运算 B.只做加法

C.能暂时存放数据结果 D.既做算术运算,又做逻辑运算

10、在定点二进制运算器中,减法运算一般通过( )来实现。

A.原码运算的二进制减法器 B.补码运算的二进制减法器

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

20

20

Page 21: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

C.原码运算的十进制加法器 D.补码运算的二进制加法器

11、在定点运算器中,无论采用双符号位还是但符号位,必须有( ),它一般用( )

来实现。

A.译码电路 与非门 B.编码电路 或非门

C.溢出判断电路 异或门 D.移位电路 与或非门

12、请从下面浮点数计算部件的描述中选出两个描述正确的句子是( )。

A.浮点计算部件可用两个松散连接价码部件和尾数部件来实现;

B.阶码部件可实现加、减、乘、除四种运算;

C.阶码部件只进行阶码相加、相减;

D.尾数部件只进行乘法和除法运算。

二、填空题

1、设子长 8 位(含 1 位符号位),真值 X=-1011,则[X]原=

2、定点数是指 位置固定不变的数,它的这一特点决定了其表示的数值

范围是很有限的。

3、两个补码表示的数相加,符号位参加运算,两数和的补码等于两数补码的

4、两个补码表示的数相减,符号位相减,两数差的补码等于被减数的补码加上减数

的补码。

5、设字长 8 位(含 1 位符号位),则原码定点小数能表示的绝对值最大负数是

(十进制)。

6、已知[Y]补求[-Y]补的方法是:将[Y]补同符号一起求反末位加 。

7、两个正数相加,结果大于机器所能表达的最大正数,称为 ;两个负数相

加,结果小于机器所能表达的最小负数,称为 。

8、用单符号位法判断溢出的规则是:两数进行加、减运算时,如果最高位有效位产生

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

21

21

Page 22: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

进位而符号位 (填“有”或“无”)进位,则产生“上溢”;如果最高有效

位无进位而符号位 (填“有”或“无”)进位,则产生“下溢”。

9、用变形补码判断溢出的规则是:两个数相加后,如果结果的符号位出现 或

两种组合时,则表示发生了溢出。

10、用计算机实现原码一位乘法时,通常采用将 n 位数相乘转化为 n次 的方法

来实现。

11、实现除法运算的方法也很多,常用的有 、 、 等。

12、不恢复余数法的规则是:当余数为正数时,商 ,余数 1 位

减 ;当余数为负数时,商 ,余数 1 位,加

13、设阶码 8 位(最左一位为符号位),用移码表示,尾数为 24 位(最左一位为符号位),

用规格化补码表示,则它所能表示的最大正数的价码为 ,尾数为 ;绝对

值最小的负数的阶码为 ,尾数为 (以上回答均用二进制书写)。

14、浮点数的加减运算分为 5 个步骤,分别是 、 、 、

和判断溢出。

15、算术 /逻辑运算单元 (ALU)是运算器中的主要组成部分,主要用于完成各种

运算和 运算。

16、ALU 中有两个重要的状态寄存器: 和 。

17、三总线结构运算器的缺点是 比较复杂,总线的 不高。

18、为了运算器的高速性,采用了 进位, 乘除法,

等并行技术措施。

三、应用题

1、求证:-[y]补=[-y]补

2、试证明补码加法公式:[X+Y]补=[X]补+[Y]补

3、试证明补码减法运算公式:补码减法:[X-Y]补=[X+(-Y)]补+[-Y]补

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

22

22

Page 23: 计算机组成原理题

郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1

4、已知:X=0.1011,Y=-0.0101,求[X/2]补,[X/4]补,[-X]补及[Y/2]补,[Y/4]补,[-Y]补。

5、已知X=-0.01111,Y=+0.11001,求[X]补,[-X]补,[Y]补,[-Y]补,X+Y=?,X-Y=?

6、已知[N1]补=(011011)2,[N2]补=(101101)2,求[N

1]补,[N

2]补具有的十进制数值。

7、若浮点数 X 的二进制存储格式为(41360000)16,求其 32 位浮点数的十进制数值。

8、试说明串行进位和并行进位的不同之处。

9、用补码运算方法求 x+y=?,x-y=?指出结果是否溢出。

(1)X=0.1001 Y=0.1100 (2)X=-0.0100 Y=0.1001

10、请用补码一位乘法中的 Booth 算法 X×Y=?X=0101,Y=-0101,列出计算过程。

11、已知 x=0.1011,y=-0.1001,用补码一位乘法计算 x×y(要求写出过程)。

12、已知两浮点数 X=201×0.1101,Y=211×(-0.1010),求(X+Y)=?

13、已知两浮点数 X=2010×0.11011011,Y=2100×(-0.10101100),求 X+Y=?

14、设有浮点数 x=2-5×0.0110011,y=23×(-0.1110010),阶码用 4位移码表示,尾数

(含符号位)用 8位补码表示,求[x×y]浮,要求直接用补码完成尾数运算,运算结果尾

数仍保留8位(含符号位),并用尾数之后的 4位值处理舍入操作。

17、设有两个浮点数 N1=2j1×S1,N2=2j2×S2,其中阶码 2位,阶符 1位,尾数 4位,数

符 1位。设:

j1=(-10)2 S1=(+0.1001)2

j2=(+10)2 S2=(+0.1011)2

求 N1×N2,写出运算步骤及结果,积的尾数占 4位,要规格化结果,根据原码阵列

乘法器的计算步骤求尾数之积。

(答案随后给出)

3 月份复习资料

整理负责人:陈蒙 张瑶 计算机的运算方法2010-3-28

23

23