计算机组成原理computerorganizationprinciple.ppt

上传人:本田雅阁 文档编号:2653900 上传时间:2019-04-30 格式:PPT 页数:32 大小:296.03KB
返回 下载 相关 举报
计算机组成原理computerorganizationprinciple.ppt_第1页
第1页 / 共32页
计算机组成原理computerorganizationprinciple.ppt_第2页
第2页 / 共32页
计算机组成原理computerorganizationprinciple.ppt_第3页
第3页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机组成原理computerorganizationprinciple.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理computerorganizationprinciple.ppt(32页珍藏版)》请在三一文库上搜索。

1、计算机组成原理 computer organization principle,顾 浩 赵宝华,3.原码表示法,原码表示法是一种最简单的机器数表示法, 其最高位为符号位, 符号位为0时表示该数为正, 符号位为1时表示该数为负, 数值部分与真值相同。 若真值为纯小数, 其原码形式为XS . X1X2Xn, 其中XS表示符号位。 原码的定义为: X原 例3.11:X0.0110 X原X0.0110 X-0.0110 , X原1X1(-0.0110)10.0110 1.0110,X 0X1 1X1X 1X0,3.原码表示法,若真值为纯整数, 其原码形式为XS X1X2Xn , 其中XS表示符号位。

2、原码的定义为: X原 例3.12:X1101 X原X01101 X1101, X原2nX24(1101)100001101=11101 原码表示中,真值0有两种不同的表示形式: 0原00000, 0原10000 原码的优点是直观易懂, 机器数和真值间的转换很容易,用原码实现乘、除运算的规则简单。 缺点是加、减运算规则较复杂。,X , 0X2n 2nX2nX, 2nX0,5.补码,(1)模和同余 模(Module)是指一个计量器的容量, 可用M表示。如, 一个4位的二进制计数器, 当计数器从0计到15之后, 再加1,计数值又变0 。这个计数器的容量M2416, 即模为16。可见, 纯小数的模为2

3、, 一个字长为n+1位的纯整数的模为2n+1。 同余概念是指两整数A和B除以同一正整数M, 所得余数相同, 则称A和B对M同余, 即A和B在以M为模时是相等的, 可写成 : AB(mod M) 对钟表来说,其模M12,故4点和16点、5点和17点均是同余的,可写作 416(mod 12),517(mod 12) 补码表示法利用模和同余的概念, 可使减法运算转化成加法, 从而简化计算机的运算器电路。,举例,假设, 时钟停在8点, 而现在正确的时间是6点, 这时拨准时钟的方法有两种: 将分针逆时钟旋转两圈(即时钟倒拨2小时): 826, 做减法。 将分针顺时钟旋转10圈(即正拨10小时):8106

4、 (mod 12 )做加法。 此时, 82810(mod 12) 设: A2,B10 则: 10/12(122)/121(2)/12 故2和10同余。同余的两个数具有互补关系, 2与10对模12互补,即,2的补数是10(以12为模)。 可见, 只要确定了“模”, 就可找到一个与负数等价的正数( 该正数是负数的补数 )来代替此负数,而这个正数可用模加上负数本身求得, 这样就可把减法运算用加法实现了。 例3.14: 959(5)9(125 )974(mod 12) 例3.15: 652565(25 )65(10025 )657540 (mod 100 ),(2)补码表示,补码的符号位表示方法与原码

5、相同(即正0, 负1 ), 其数值部分的表示与数的正负有关: 正数: 数值部分与真值形式相同; 负数: 将真值的数值部分按位取反, 且在最低位加1。 若真值为纯小数, 其原码形式为XS . X1X2Xn, 其中XS表示符号位。 补码的定义为: X补 例3.16:X0.0110 X补X0.0110 X0.0110 X补2X2(0.0110) 100.0110 1.1010,X , 0X1 2X2X , 1X0,(2)补码表示,若真值为纯整数, 其原码形式为XS . X1X2Xn, 其中XS表示符号位。 补码的定义为: X补 例3.17:X1101 X补X01101 X1101 X补2n+1X25

6、(1101)1000001101 10011 在补码表示中, 真值0的表示形式是唯一的: 0补0补00000很有用处,X , 0X2n 2n+1X2n+1X ,2nX0,(3)补码运算,采用补码运算要注意以下三个问题: 符号位要与数值位部分一样参加运算。 符号运算后如有进位产生, 则把这个进位舍去不要。 补码运算具有性质:X补Y补XY补 例318:已知X0.1101,Y0.0001,求XY补 解: X补0.1101 + Y补1.1111 XY补10.1100 舍去不要,7.移码,移码也叫增码或偏码,常用于表示浮点数中的阶码。 移码就是在真值X基础上加一常数, 此常数被称为偏置值, 相当于X在数

7、轴上向正向偏移了若干单位, 这就是“移码”一词的由来。即: 对字长为n的计算机, 若最高位为符号位, 数值为n1位,当偏移量取2 n-1时,其真值X对应的移码的表示公式为: X移 2 n-1 X ( 2 n-1 X 2 n-1 ),移码与整数补码的定义比较,移码定义: X移 2 n-1 X ( 2 n-1 X 2 n-1 ) 整数补码的定义: X补 比较后得出两者关系: 当0X 2 n-1时,X移 2 n-1 X 2 n-1 X补 当 2 n-1 X0时,X移 2 n-1 X(2 nX) 2 n-1 X补 2 n-1 可见,X移可由X补求得, 方法是把X补的符号位求反,就得到X移 例3.19:

8、已知X1010,Y1010,求X移和Y移。 解:X补01010,所以X移11010 Y补10110,所以Y移00110 移码的特点: (1) 移码的最高位为0表示负数, 最高位为1表示正数,这与原码、补码及反码的符号位取值正好相反。 (2)移码为全0时, 它对应的真值最小; 为全1时, 它对应的真值最大。 (3)真值0的移码表示是唯一的, 即0移0移10000 (4)同一数值的移码和补码, 除最高位相反外, 其它各位相同。,X , 0X2n 2n+1X2n+1X ,2nX0,3.2.2 机器数的定点与浮点表示法,1定点数表示法 定点数表示法通常把小数点固定在数值部分的最高位之前, 或把小数点固

9、定在数值部分的最后。前者用来表示纯小数, 后者用于表示整数。如图3-3所示。 在计算机中, 图示的小数点“”实际上是不表示出来的, 是事先约定好固定在那里的。对一台计算机来说, 一旦确定了一种小数点的位置, 整个系统就不再改变。 只能处理定点数的计算机称为定点计算机。在这种计算机中机器指令访问的所有操作数都是定点数。,定点数要选择合适的比例因子, 确保初始数据、中间结果和最后 结果都在定点数的表示范围之内, 否则就会产生“溢出”。,2.浮点数表示法,小数点的位置可按需浮动, 这就是浮点数。例如: NrEM 式中, r为浮点数阶码的底, 与尾数的基数相同, 通常r2。E和M都是带符号的定点数,

10、E叫数N的阶码(Exponent),M为数N的有效数字, 称为尾数(Mantissa)。在大多数计算机中, 尾数为纯小数, 常用原码或补码表示;阶码为纯整数, 常用移码或补码表示。 计算机中, 通常用约定的4部分来表示一个浮点数:其中,Ef 、S分别称为阶码E和尾数M的符号位。 按照IEEE754标准,常用的浮点格式如图3-4所示。,2.浮点数表示法,IEEE 754标准中有三种形式的浮点数, 格式见表3-1。 短浮点数即单精度浮点数,长浮点数即双精度浮点数, 都采用隐含尾数最高数位的方法, 故增加了一位尾数。临时浮点数又称扩展精度浮点数,无隐含位。 短浮点数:最高位为数符位 ;其后是8位阶码

11、, 以2为底, 用移码表示, 阶码的偏移值为127(叫移127码); 其余23位是尾数的数值位。对规格化的二进制浮点数,约定最高位总是“1”,为使尾数能多表示一位有效值,可将这个“1”隐含, 故尾数数值实际上是24位, 即1位隐含位加23位小数位。,短浮点数的移码的偏置值是127(3FH);长浮 点数的偏置值是1023(3FFH)。根据移码 的定义,存储浮点数阶码部分之前,偏置值 要先加到阶码真值上。 注意:隐含的“1”是一位整数(即位权为20), 在浮点格式中表示出来的23位尾数是纯小数, 用原码表示.如(12)10=(1100)2,将它规格化为 1.1 23,其中整数部分的1将不存储在23

12、 位尾数内.,表3-1 IEEE 754标准中的三种浮点数,浮点数举例,例3.20: 将(100.25)10转换成短浮点数格式。 解: (1)把十进制数转换成二进制数 (100.25)10 (1100100.01)2 (2)规格化二进制数 1100100.011.100100012 6 (3)计算出阶码的移码(偏置值阶码真值) 1111111(127H)110 10000101 注意:短浮点数的阶码偏置值是1111111(127H)。 (4)以短浮点数格式存储该数 该数的符号位0 ,阶码10000101 尾数10010001000000000000000 23位 所以(100.25)10的短浮

13、点数代码为 0;10000101;10010001000000000000000 十六进制值是42C88000H。,110,浮点数举例,例321:将短浮点数C1C90000H转换成十进制数。 解:(1)把十六进制数转换成二进制形式,并分离出符号位、阶码和尾数 因为,C1C90000H11000001110010010000000000000000B 所以, 符号位1 阶码10000011(用黑体字表示) 8位 尾数10010010000000000000000 23位 (2)计算出阶码的真值(即移码偏置值) 10000011 -1111111100 (3)以规格化二进制数形式写出此数 1.10

14、0100124 (4)写成非规格化二进制数形式 11000001 (5)转换成十进制数,并加上符号位 (11000.001)2(25.125)10 总结:IEEE 754短浮点数规格化的数值v表示为v(1)S(1f)2 E127, 式中,S代表符号位,S0表示正数,S1表示负数;E是用移码表示的阶码;f是尾数的小数部分。,浮点数举例,例1:求十进制数-5的单精度浮点数IEEE754代码。 11000000101000000000000000000000 解: -5=-101B=-1.0122,阶码E=127+2=129=10000001B IEEE754代码是1 10000001 010000

15、00000000000000000 例1:求十进制数0.15625的单精度浮点数IEEE754代码。 解: -0.15625=-1.012-3,阶码E=127-3=124=01111100B IEEE754代码是1 01111100 01000000000000000000000 ,一、判断题 1. 在数字计算机中所以采用二进制是因为二进制的运算最简单。 2. 在所有的进位计数制中,整数部分最低位的权都是1。 3. 某R进位计数制, 其左边一位的权是其相邻的右边一位的权的R倍。 4. 计算机表示的数发生溢出的根本原因是计算机的字长有限。 5. 表示定点数时, 若要求数值0在计算机中唯一地表示为

16、全0, 应采用补码。 6. 浮点数的取值范围由阶码的位数决定,而精度由尾数的位数决定。 7. CRC校验码的生成和检验大多采用软件实现。 8. 若浮点数的尾数用补码表示,那么规格化的浮点数是指尾数数值位的最高位是0(正数)或是1(负数)。 9. 在实际应用中, 奇偶校验多采用奇校验,这是因为奇校验中不存在全“0”代码,在某些场合下更便于判别。 10. 显示图形时要经过复杂的数学计算,因此占用的时间要比位图图像的时间长。 二、选择题 1.下列各种数制的数中最小的数是 。 A.(101001)2 B.(101001)BCD C.(52)8 D.(233)H,习题 3,习题3,2下列各种数制的数中最

17、大的数是 。 A(1001011)2 B75 C(112)8 D(4F)H 31010AH是 。 A表示一个二进制数 B表示一个十六进制数 C表示一个十进制数 D表示一个错误的数 4二进制数215转换成二进制数是 (1) ,转换成八进制数是 (2) ,转换成十六进制数是 (3) 。将二进制数01100100转换成十进制数是 (4) ,转换成八进制数是 (5) ,转换成十六进制数是 (6) 。 (1)A11101011B B11101010B C10100001B D11010111B (2)A327 B268.75 C252 D326 (3)A137H BC6H CD7H DEAH (4)A1

18、01 B100 C110 D99 (5)A123 B144 C80 D800 (6)A64 B63 C100 D0AD,习题3,5ASCII码是对 (1) 进行编码的一种方案,它是 (2) 的缩写。 (1)A字符 B汉字 C图形符号 D声音 (2)A余3码 B十进制数的二进制编码 C格雷码 D美国标准信息交换代码 6在一个8位二进制数的机器中,补码表示数的范围从(1) (小)到(2) (大),这两个数在机器中的补码表示分别为(3)和(4) ,而数0的补码表示为(5) 。 (1)、(2): A-256 B-255 C-128 D-127 E0 F+127 G+128 H+255 I+256 (3

19、)、(4)、(5): A00000000 B10000000 C01111111 D11111111 E00000000或10000000 F01111111或11111111 G00000000或11111111 H10000000或01111111 7将十进制数15/2表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)是 。 A01101111 B01101110 C01111111 D11111111,习题3,8十进制数5的单精度浮点数IEEE754代码为 A 。 A01000000101000000000000000000000 B1100000010100000000

20、0000000000000 C01100000101000000000000000000000 D11000000101000000000000000000000 9能发现两位错误并能纠正一位错的编码是 。 ACRC码 B海明码 C偶校验码 D奇校验码 10在大量数据传送中常用的且有效的检验法是 。 ACRC码 B海明码 C偶校验码 D奇校验码 三、填空题 1计数制中使用的数据个数被称为 。 2在用 表示的机器数中,零的编码是唯一的。 3信息的数字化编码是指 。 4一个定点数由 和 两部分组成。根据小数点位置不同,定点数据有 和 两种表示方法。,习题3,5BCD码中,每一位十进制数字由 位二进

21、制数码组成,用ASCI码表示一个字符通常需要 位二进制数码。 6移码常用来表示浮点数的 部分,移码和补码比较,它们除 外,其他各位都 。 7码距的定义是 。 88421码用二进制求和时,当和超过 时,需要做 修正。 9有二进制数D4D3D2D1,奇偶校验值用p表示,则奇校验为 ,偶校验为 ,奇偶校验只能检测 ,无法检测 。 10在浮点加减法运算中,当运算结果的尾数的绝对值大于1时,需要对结果进行 ,其操作是 。 四、计算题 1用二进制数表示一个四位十进制的整数最少需要几位(不含符号位)。 2某机器字长32位,定点表示,其中31位表示尾数,1位是符号位,问: 定点原码整数表示时,最大正数是多少?

22、最小负数是多少? 定点原码小数表示时,最大正数是多少?最小负数是多少?,习题3,3写出下列二进制数的原码、反码、补码和移码。 (1)1011 (2)01101 (3)0 4某机器字长16位,浮点表示时,其中含1位阶符、5位阶码、1位尾符、9位尾数,请写出它能表示的最大浮点数和最小浮点数。 5字符“F”的ASCII码为46H,请写出它的奇校验码和偶校验码(假定校验位加在最高位)。 6已知被校验的数据为101101,求其海明校验码。 提示:先决定校验位的位数r=4,然后根据编码规则决定海明校验位的位置和数据位的位置,最后用偶校验法求出校验位的值。答案应为1011100100。 7已知被检信息为10

23、10, 选择的生成多项式G(X)为X3X1, 求CRC校验码, 并求循环余数, 说明其校验原理。 8将二进制数1011010转换成8421码。,习题3,五、简答题 1试比较定点带符号数在计算机内的四种表示方法。 2试述浮点数规格化的目的和方法。 3在检错码中,奇偶校验法能否定位发生错误的信息位?是否具有纠错功能? 4简述循环冗余码(CRC)的纠错原理。,关于模,1.计算机本身是一个模数系统 因为机器字长有限,当计算结果的位数超过机器字长时,向更高位的进位就会丢失, 这就是机器的模。 2.对n+1位的定点小数, XS . X1X2Xn,符号位XS的位权是20,符号位向更高位的进位要丢失, 所以定

24、点小数的模是20 =1 3.对n+1位的定点整数, XS X1X2Xn, 符号位XS的位权是2n,符号位向更高位的进位要丢失, 故定点整数的模是2n+1 。 4.原码与补码的区别 对正数, 两者完全相同; 对负数, 两者表示形式完全不同, 且补码要比原码多表示一个最负的数。原因是对于真值0,原码有两种表示方式,补码只有一种。,关于原码与补码,举例:字长为8位的二进制代码10000000, 若其为原码, 表示-0, 若其为补码, 则不再表示-0, 而表示绝对值最大的负数。 此时,最高位的1有两个含义, 既代表负数, 又代表这一位的位权。若这是一个定点整数, 其值为-27=-128;若这是一个定点

25、小数,其值为-20=-1。 结论:负数补码的表示范围比负数原码的表示范围略宽,n=3时整数的补码,定点小数的表示范围,最大正数,20 2-1 2-2 2-(n-1) 2-n,0,0,0,0,1,20 2-1 2-2 2-(n-1) 2-n,最小正数,结论: 1.最大正数的数值位部分全部为1,即最大正数=2-1+2-2 +2-n=1- 2-n 10000 20=1 最小正数的数值位最低位为1,即2-n -00001 2-n 01111 1-2-n,原码和补码表示的绝对值最大负数 (定点小数),1,1,1,1,1,20 2-1 2-2 2-(n-1) 2-n,原码表示的绝对值 最大的负数,1,0,

26、0,0,0,20 2-1 2-2 2-(n-1) 2-n,补码表示的绝对值 最大的负数,结论: 1.原码表示时,正数和负数的范围是对称的,故绝对值最大的负数等于正 数值加上” ”号,其真值为(1 2-n)。 2.补码表示的绝对值最大的负数等于1 。,定点整数表示的最大正数 与最小正数,0,1,1,1,1,2n 2n-1 2n-2 21 20,最大正数=2n-1,0,0,0,1,0,最小正数=1,2n 2n-1 2n-2 21 20,原码和补码表示的绝对值最大负数 (定点整数),1,1,1,1,1,原码表示的绝对值 最大的负数,1,0,0,0,0,补码表示的绝对值 最大的负数,2n 2n-1 2

27、n-2 21 20,2n 2n-1 2n-2 21 20,结论: 1.原码表示的绝对值最大负数= (2n 1)。 2.补码表示的绝对值最大负数= 2n 。,浮点数的表示范围,1位 k位 1位 n位,阶码E 尾数M,1.浮点数的最大正数应是:阶码部分与尾数部分都为最大正数,其值是: 最大正数=(1-2-n) 22 -1 2.浮点数的最小正数应是:尾数部分为最小正数, 阶码部分是绝对值 最大的负数:最小正数=2-n 2-2 3.浮点数的绝对值最大负数应当是尾数部分为绝对值最大的负数, 阶码部分为最大正数:绝对值最大负数=-1 22 -1,k,k,k,假设尾数和阶码都用补码,浮点数中几个关键点的代码

28、 表示形式,0,1,1,0,1,1,1,1,最大正数,1,2k 2k-1 2120 2-1 2-2 2-(n-1) 2-n,阶符,数符,阶码部分E,尾数部分M,0,0,0,0,0,0,1,0,1,2k 2k-1 21 20 2-1 2-2 2-(n-1) 2-n,阶码部分E,尾数部分M,最小正数,0,1,1,1,1,0,0,0,0,2k 2k-1 21 20 2-1 2-2 2-(n-1) 2-n,阶码部分E,尾数部分M,绝对值最 大的负数,关于补码,例:一个8位的二进制整数, 采用补码, 由3个1和5个0组成,则最小值是多少? 解: 补码可表示的8位二进制整数的最小值是-128, 即10000000 规律:补码中, 高位0越多的数, 绝对值越大.,-128 10000000 -127 10000001 -126 10000010 -125 10000011 -124 10000100 -2 11111110 -1 11111111,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1