Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

计算机组成原理题

1,728 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

计算机组成原理题

  1. 1. 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 13 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  2. 2. 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=00-1 律 0+A=A 1·A=A 0·A=0 1+A=1任 何一 个 函数 都 可展 开 为若干个最小项之和 ;卡诺图可以表示任意一个逻辑函数。计算机的逻辑部件计算机的逻辑部件分为以下在三种:1、组合逻辑电路(没有记忆功能)2、时序逻辑电路(具有记忆功能)3、阵列逻辑电路(集成电路)组合逻辑电路的输出状态只取决于当前输入信号的状态,与过去输入信号的状态无关,即没有记忆功能。时序逻辑电路的输出状态不仅和当时输入信号的状态有关,还与以前输入信号的状态有关,即有记忆功能。加法器是计算机中最常用、最基本的组合逻辑电路。主要完成两个补码数据的相加运算。时序逻辑电路(具有记忆功能) 23 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  3. 3. 3 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1触发器是时序电路内存储数据的记忆元件,构成时序电路基础。寄存器:用于暂时存放指令和数据;计数器:是计算机和数字仪表中常用电路。 计 算 机 运 算 方 法一.概念:1)机器数的表示方法:原码:一个符号 + 数据的绝对值。反码:正数:数值部分与真值形式相同;负数:真值的数值部分按位取反。补码:正数补码与原码相同。 负数补码的数值部分等于二进制位按位取反,末位加 1。移码:1.最高位符号位, 1 表示正号, 0 表示负号。如果是双符号位,最高位保持 0: 01 正数, 00 负数。溢出判断:最高位为 1, 10 上溢, 11 下溢。2.在计算机中,移码只执行加减法运算,且运算结果 +2n 修正;即对结果的符号位取反,得到[ X]移。2)字符的表示方法:现代计算机不仅仅是处理数值领域的问题,还有大量非数值数据,比如:文字、字母及专用符号来表示文字语言,逻辑语言等信息。国际上广泛采用美国国家信息交换标准代码 -- ASCII( 128 字符) 33 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  4. 4. 4 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1字符串是指连续的一串字符,它们占用主存中连续个存储单元 .每个字节存放一个字符( 字符以 ASCII 码表示 )3)汉字的表示方法 :(了解)汉字编码方法:数字编码(区位码,国际区位码)拼音码 (以汉语拼音基础的输入方法)字形码 (五笔字形输入法)汉字的存储有两方面的含义:字形码的存储和汉字内码存储。字形码是一汉字点阵表示的汉字字形代码,它是汉字的输出形式存储。4)校验码数据在计算机中存取、传送,要求绝对正确,如果某一位出错,就不能得到正确的结果,但实际上由于某种随机干扰容易发生错误。为了发现和校正错误,计算机广泛采用容错技术,现在的检验办法大多采用“冗余校验”:原始数据 + 校验位(冗余部分)将原始数据和校验位一起按某种规律编码,存入存储器或向外发送。当从存储器读出或者接收代码时,按同一编码规律进行译码或计算。然后,取出原始数据,判断传输过程中是否有错,哪一位出错了。介绍三种常用的校验码:1)奇偶检错码:用于并行数据传送中,发现一位数据出错,没有纠错能力。发送端产生一个检验位,使“ 1”的个数是奇数(或偶数)并 43 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  5. 5. 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.)在运算过 程中 , 寄存器的位数一旦确定下来,就有了容量的限制, 53 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  6. 6. 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 位 63 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  7. 7. 7 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 101 部分积 +[ 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=02)符号参加运算:设置部分积与被乘数三个符号位。乘数 Y 数值部分为偶数设两个符号位;为奇数设一个符号位;3)运算步骤:根据 Yn-1, Yn, Y n+1 判断操作;4)最后一步:乘数 Y 数值部分为偶数最后一步不移位;为奇数最后移一位。定点除法运算原码一位除法(不常用的方法略去不讲)加减交替法的规则如下:余数为正,商 1,左移一位,减去除数; 73 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  8. 8. 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) 舍入(处理多余位) 83 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  9. 9. 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 93 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  10. 10. 10 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1⑤ 判溢出 阶 码 符 号 为 00 , 不 溢 出 。 最 终 结 果 为 : X+Y = -0.11101010 * 2011浮点乘除运算1)阶码加减: 乘法: jX + jY ,除法: jX - jY2)尾数乘除: 乘法: SX * SY ,除法: SX / SY3)规格化处理;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.00011101)阶码相加: [ jX + jY ]移 = [ jX ]移 + [ jY ]补 = 0 011 + 0 011 = 0 1102)尾数相乘: [SX]补 * [SY]补 = 0.0110011 * 1.0001110 = 1.10100101001010 [XY]浮 = 0 110, 1.101001010010103)规格化处理 : 103 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  11. 11. 11 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1 符号位与最高数值位相同,需要规格化(尾数左移一位,阶码 -1)[XY]浮 = 0.101, 1.010010100101004)舍入操作: 尾数设 8 位, 0 舍 1 入,则 [XY]浮 = 0 101, 1.01001015)判溢出: 阶码两符号位相同,不溢出。 典 型 例 题1、原码加减法是指( )。 A. 操作数用原码表示,连同符号位直接相加减 B. 操作数取绝对值,直接相加减,符号位单独处理 C. 操作数用原码表示,尾数直接相加减,符号位单独处理 D. 操作数用原码表示,根据两数符号决定实际操作,符号位单独处理【分析】用原码进行加减法运算时,如果两数同号则数值相加;如果是异号要进行减法。反之,用原码做减法时,要比较两个操作数的绝对值大小,然后用大数减去小数,最后给结果选择恰当的符号。【答案】 D2、如果 X 是负数,由 [X]补 求 [-X]补是将( )。 A. [X]补各值保持不变 B. [X]补符号位变反,其他各位不变 C. [X]补除符号为外,各位变反,末位加 1 D. [X]补连同符号位一起各位变反,末位加 1 113 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  12. 12. 12 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1【分析】已知 [X]补求 [-X]的方法是:将 [X]补同符号位一起求反,末位加“ 1”。【答案】 D3、若用双符号位,则发生正溢的特征是:双符号位为( )。 A. 00 B. 01 C. 10 D. 11【分析】双符号位的几种取值及溢出种类如下: A BC C =00 结果为正数,无溢出 A BC C =01 结果上溢 (正溢 ) A BC C =10 结果下溢 (负溢 ) A BC C =11 结果为负数,无溢出【答案】 B4、若阶码为 3 位,用补码表示;尾数 7 位,用原码表示,其中一位为符号 位;以 2 为为底。则十进制数 27/64 的浮点规格化数是( )。 A. 0101011011 B. 0100110110 C. 0111110110 D. 0001011011【分析】 27/64 不必转化为小数再用乘 2 取反的方法转换成二进制小数,直接将00011011(即 27)左移 6 位后即得到所需的二进制小数。【答案】 B5、 在 补 码 一 位 乘 法 中 , A 补是 累 加 和 , X 补是 被 乘 数 , Y 补是 乘 数 , 当 判 断 位 +1YnYn =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]补后右移一位 123 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  13. 13. 13 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1 YnYn+1=11, 部分积、乘数右移一位 【答案】 C6、下列运算步骤中,浮点乘法不需要的步骤是( )。 A.对阶 B.阶码相加 C.尾数相乘 D.结果规格化【分析】浮点数加、减法才需要对阶操作。【答案】 A7、 (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.01108、 (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 133 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  14. 14. 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.11100 14 3 月份复习资料 整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  15. 15. 15 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1结果的符号位相同,无溢出, X-Y = -0.0010011、试用原码一位乘法计算 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.0101101112、已知 x=-0.1101, y=0.1011。试用补码一位乘法求 x×y=? 【分析】根据 Booth 算法进行补码一位乘法的计算,按照判断位的取值决定下一步如何操作。 【答案】被乘数用双符号位法表示[X] 补=11.0011,[- X]=00.1101;乘数只需要一个符号位,[ Y] 补=0.1011。 部分积 乘数 附加位 说明 4 5 0 0.0 0 0 0 0.1 0 1 1 0 Y Y =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 部分积右移一位 4 5 +0 0 0.0 0 0 0 Y Y =11,+0 153 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  16. 16. 16 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1 0 0.0 1 1 0 → 0 0.0 0 1 1 0 1 0 1 0 1 部分积右移一位 4 5 +[X] 补 1 1.0 0 1 1 Y Y =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 4 5Y Y =10, +[-X]补 0 0.1 0 0 0 → 0 0.0 1 0 0 0 0 0 1 0 1 部分积右移一位 4 5 +[X]补 1 1.0 0 1 1 Y Y =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。【分析】根据原码加减交替法的运算规则进行运算。 f f f【答案】 (1)计算符号位: Z = X Y =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 163 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  17. 17. 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 173 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  18. 18. 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=E x -E =0010 y 即两浮点数的阶差为 2,Y 的阶码值较小,应将 Y 的尾 数右移 2 位且阶码值加 2,对阶后 Y 的值为: Y=0.110101 × 2 0011 =0.00110101 × 2 0101 (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× 2 0101 (3)规格化处理。 本例运算结果尾数两符号位值为 01,说明尾数溢出,需做右规处理。尾数向右移 1 位,其阶码值加 1.即: X+Y=01.00100001× 2 0101 右规,尾数右移 1 位,阶码加 1 X+Y=00.100100001× 2 0110 (4)舍入处理。 采用恒置 1 舍入法,则结果为: 183 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  19. 19. 19 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 1 X+Y=00.100101× 2 0110 (5)判断溢出。 本例阶码若用 4 位表示第一位为符号位。阶码结果 0110 未超出所能表示的最大值,所以没有发生溢出,因此最终结果为: X+Y=00.100101× 2 0110 习 题一、选择题 =( ) 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.当某一步运算不够减时,做恢复余数的操作; 193 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  20. 20. 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.补码运算的二进制减法器 203 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  21. 21. 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、用单符号位法判断溢出的规则是:两数进行加、减运算时,如果最高位有效位产生 213 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  22. 22. 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]补 223 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28
  23. 23. 23 郑州大学软件学院 08 软开 java 计算机组成原理月复习资料 14、已知: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=? 1 1 26、已知[N ]补=(011011)2,[N2]补=(101101)2,求[N ]补,[N ]补具有的十进制数值。7、若浮点数 X 的二进制存储格式为(41360000)16,求其 32 位浮点数的十进制数值。8、试说明串行进位和并行进位的不同之处。9、用补码运算方法求 x+y=?,x-y=?指出结果是否溢出。 (1)X=0.1001 Y=0.1100 (2)X=-0.0100 Y=0.100110、请用补码一位乘法中的 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 位,要规格化结果,根据原码阵列乘法器的计算步骤求尾数之积。 (答案随后给出) 233 月份复习资料整理负责人:陈蒙 张瑶 计算机的运算方法 2010-3-28

×