计算机组成原理数据的表示和运算*第1页,共36页,星期日,2025年,2月5日第二部分数据的表示和运算2.1数制与编码2.2定点数表示和运算2.3浮点数表示和运算2.4算术逻辑单元ALU*第2页,共36页,星期日,2025年,2月5日2.2定点数表示和运算2.2.1?定点数的表示
1、无符号数的表示;2、有符号数的表示。
2.2.2?定点数的运算
1、定点数的位移运算;2、原码定点数的加/减运算;3、补码定点数的加/减运算;4、定点数的乘法运算*第3页,共36页,星期日,2025年,2月5日回顾1、移位运算对有符号数的移位运算成为算术移位。对无符号数的移位运算成为逻辑移位。算术移位的特点:对于正数,三种机器数算术移位后符号位均不变,左移最高位丢1,结果错误;右移最低位丢1,影响精度。对于负数,三种机器数算术移位后符号位不变。原码左移,高位丢1,结果出错;原码右移低位丢1,影响精度。补码左移,高位丢0,结果出错;补码右移低位丢1,影响精度。反码左移,高位丢0,结果出错;反码右移低位丢0,影响精度。*第4页,共36页,星期日,2025年,2月5日回顾2、补码定点数的加/减运算补码加法补码加法的特点:符号位作为数的一部分参加运算,符号位的进位丢掉。运算结果为补码形式整数[A]补+[B]补=[A+B]补(mod2n+1)小数[A]补+[B]补=[A+B]补(mod2)补码减法因为A–B=A+(–B),所以有补码减法:整数[A–B]补=[A+(–B)]补=[A]补+[–B]补(mod2n+1)小数[A–B]补=[A+(–B)]补=[A]补+[–B]补(mod2)从[Y]补求[-Y]补的法则是:对[Y]补包括符号位“求反且最末位加1”*第5页,共36页,星期日,2025年,2月5日回顾3、溢出的检测溢出:运算结果超出机器的表数范围定点加减法溢出条件:★同号数相加或异号数相减。★运算结果超载。1)溢出的检测可能产生溢出的情况两正数加,变负数,上溢(大于机器所能表示的最大数)两负数加,变正数,下溢(小于机器所能表示的最小数)2)溢出的检测方法双符号位法(参与加减运算的数采用变形补码表示)单符号位法*第6页,共36页,星期日,2025年,2月5日回顾4、反码加减法运算(1)反码加法运算反码加法运算遵循[X]反+[Y]反=[X+Y]反规则。符号位参加运算。符号位相加后,如果有进位,则把该进位的数字加到数的最低位,即循环进位。(2)反码减法两个反码表示的数相减,类似于补码减法,将减数变符号,并根据变号后的减数取反,按反码加法进行。*第7页,共36页,星期日,2025年,2月5日2.2.2?定点数的运算7、定点数的乘法运算分析笔算乘法A=–0.1101B=0.1011A×B=–00.11010.101111011101000011010.10001111×乘积的符号心算求得符号位单独处理乘数的某一位决定是否加被乘数4个位积一起相加乘积的位数扩大一倍?*第8页,共36页,星期日,2025年,2月5日2.2.2?定点数的运算笔算乘法改进A?B=A?0.1011=0.1A+0.00A+0.001A+0.0001A=0.1A+0.00A+0.001(A+0.1A)=0.1A+0.01[0?A+0.1(A+0.1A)]=0.1{A+0.1[0?A+0.1(A+0.1A)]}=2-1{A+2-1[0?A+2-1(A+2-1(A+0))]}第一步被乘数A+0第二步1,得新的部分积第八步1,得结果第三步部分积+被乘数…右移一位*第9页,共36页,星期日,2025年,2月5日2.2.2?定点数的运算改进后的笔算乘法过程*第10页,共36页,星期日,2025年,2月5日2.2.2?定点数的运算1)定点原码乘法(1)原码一位乘运算规则(以小数为例)设[x]原=x0.x1x2