数据的表示、运算方法和运算部件

海明码

332af362be784ec683d6a3c995b86754.png

循环冗余码

浮点数

浮点数的表示形式

N=M·2E

        其中,M为浮点数的尾数,一般为纯小数,在机器中通常采用补码表示;E为阶码,为纯整数,用补码或移码表示。浮点数的取值范围由阶码的位数决定,而精度由尾数的位数决定。

        浮点数的运算实际上最终转化为定点数的运算来完成。但由于浮点数表示的特殊性,其运算又比单纯的定点数运算更复杂。
        eg.在规格化浮点数表示中,保持其他不变,只是将阶码部分的移码表示改为补码表示,将会使数的表示范围不变。(√) 仅符号位改变,范围是不变的。
        为了便于比较浮点数的正负,通常将数符位置放在浮点数的首位。(√)
        生成多项式为G(X)= eq?x%5E%7B4%7D+X+1,以此多项式进行CRC编码,则其校验位的位数为 4位。(请填写阿拉伯数字)
        用ASCII码表示一个字符通常需要 7位二进制数码
        

浮点数的加减运算

一般由以下五个步骤完成:

对阶

尾数运算

结果规格化

舍入处理

                                                                        溢出判断

        对阶

        设两浮点数X、Y进行加减运算,其中

X=Mx·2Ex,Y=My·2Ey

        所谓对阶是指将两个进行运算的浮点数的阶码对齐的操作。
        对阶的具体方法是:首先求出两浮点数阶码的差,即⊿E=Ex-Ey,将小阶码加上⊿E,使之与大阶码相等,同时将小阶码对应的浮点数的尾数右移相应位数,以保证该浮点数的值不变。即“小对大”,原因是 数据存储和计算都要受到计算机物理部件的处理位数的限制,超出部分将全部丢失。“小对大”损失的精度小,所以选择“小对大”,而不是“大对小”。

  结果规格化

        由于在进行上述两个定点小数的尾数相加减运算后,尾数有可能是非规格化形式,为此必须进行规格化操作。

        规格化操作包括左规和右规两种情况。

  • 左规操作:|尾数| <eq?2%5E%7B-1%7D时,需要左规,即尾数左移1位,阶码-1,左规可能多次,直到尾数变为规格化形式。
  • 右规操作:尾数溢出时,需要右规(1次),即尾数右移1位,阶码+1,便成为规格化的形式了。因为参加运算的是规格化浮点数(尾数的绝对值在eq?2%5E%7B-1%7D和1之间)。
  • 左归可能需要多次,右归仅需一次。
       假设浮点数加减运算时,尾数采用变形补码(模 4 补码)进行运算,运算结果形式为:MS1 MS2.M1 …… Mn,若尾数运算结果形式满足 MS1MS2.M1=00.0条件时,结果需要左规。
        假设浮点数加减运算时,尾数采用变形补码(模 4 补码)进行运算,运算结果形式为:MS1 MS2.M1 …… Mn,若尾数运算结果形式满足 MS1MS2.M1=01.0条件时,结果需要右规(1 次)。

        将十进制数15/2表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)是

01101111。 7.5化成二进制是111.1=0.1111*eq?2%5E%7B3%7D;阶码是3即1;为正数,故阶符为0;尾数为0.1111 用1111表示。拼接后为 0 11 0 1111 ,即01101111。

  

12位浮点数,阶码4位,包含1位阶符,尾数8位,包含1位数符,阶码、尾数都用补码表示,阶码在前,尾数(包括数符)在后,已知: X=(-0.1001011)×2001,Y=0.1100101×2-010,求Z=X+Y。
请计算后按要求填写答案。
(1) X的机器码是1B5H。(用十六进制表示,记得在数字后要有表示十六进制的符号H)。
(2) Y的机器码是E65H。(用十六进制表示,记得在数字后要有表示十六进制的符号H)
(3) 对阶。Ex-Ey=3>0。将Y的位数右移3位,阶码加3.则Y的机器码是10CH。(用十六进制表示,记得在数字后要有表示十六进制的符号H)。
(4) 尾数相加后的结果是1.1000001。(用二进制补码表示)。
(5) 结果规格化。结果不是规格化。将其左规一位,阶码减1后,尾数的结果是1.0000011。(用二进制补码表示)。
(6) 按第(5)步规格化的阶码结果是0000。(用二进制补码表示)。
(7) 舍入。按照0舍1入法,舍去尾数多余位,结果为083H。(用十六进制表示,记得在数字后要有表示十六进制的符号H)。

已知 X 和 Y, X=-1000, Y=+1001,用变形补码计算X+Y和X-Y,并判断是否有溢出,如有溢出并指明是正溢出还是负溢出?  (提醒:分隔符逗号用半角的逗号)
解答:
[1] X补=_____。
[2] Y补=_____。
[3] (-Y)补=_____。
[4] [X+Y]补=X补+Y补=_____。  
[5] 结果_____(填写有或无)溢出。
[6] X+Y =_____。
[7] [X-Y]补=X补+(-Y)补=10,1111
[8] 结果_____(填写正或负)溢出。X-Y无值。

        假设某规格化浮点数的尾数表示形式为M0.M1 …… Mn,若尾数用原码表示,则尾数必须满足M1=1。     

        

  溢出判断

        浮点运算结果是否溢出,并不以尾数溢出来判断,而主要看 阶码是否溢出。尾数溢出时,可通过右规操作进行纠正。阶码上溢时,说明结果的数值太大,无法表示;阶码下溢时,说明结果数值太小,可以把结果近似为0。

c237df2fcd4144bb8248d23b2f165bfd.png

                                                                        eq?897_%7B16%7D

e4673b652bf44115a19f0fd7cad49276.png

分为1,00111和1.10100。为定点整数、小数,逗号和小数点前的均为符号位。

变形补码加减运算结果的两个符号位相同时发生溢出。(×)

5.计算机中表示内存地址时应该使用无符号数

6.在补码一位乘法中,A补是累加和,X补是被乘数,Y补是乘数,当判断YnYn+1=01时,执行的运算时1/2(A补+X补)

8.设X=0.1001,Y=-0.0101,则[X/2]补,[2Y]补的值是[X/2]补=0.0100,[2Y]补=1.0110

10.8421码就是二进制数。(×)

11.在所有的进位计数制中,整数部分最低位的权都是1。(√)

     处在某一位上的“l”所表示的数值的大小,称为该位的位权

12.任意两数之差的补码等于被减数的补码与减数的补码相加之和。(×)

        两数之差的补码等于被减数的补码与减数相反数的补码。

程序顺序执行如下两条指令, MOV AL,7FH,SUB AL,1  则运算结果及其标志位分别是运算结果是7EH,CF=0,ZF=0,SF=0,OF=0,PF=1。 

设[X]补=X0.X1……Xn,X 必须满足X0.X1=0.1条件时,X 左移一位求 2X 时,会发生溢出。

原码一位乘法中,参加运算的两个乘数是绝对值参加乘法运算。(√)

8421BCD码进行加法运算,当结果大于9时,需要加6校正。否则,不需要。(√)

编码:8421 BCD码(彻底弄懂+6是什么意思,为什么要加6)_8421码为什么要加6修正_Tomorrowave的博客-CSDN博客

变形补码加减运算结果的两个符号位相同时发生溢出。(√)变形补码又称双符号位补码

计数制中使用的数据个数被称为基数

设X= 0.1101,则[X]补 =0.1101。注意有小数点

标志寄存器用来保存ALU操作结果的某些状态。

浮点数结果向右规格化的规则为:将尾数连同符号位一起__向右移一位_____,然后左边补上一位与最高位相同的位,再将阶码___加一____。

在补码加减法中,符号位作为数的一部分参加运算,但是符号位产生的进位要丢弃。

采用单符号位进行溢出检测时,若加数与被加数符号相同,而运算结果的符号与操作数的符号不同,则表示溢出。当加数与被加数符号不同时,相加运算的结果不会溢出。(答案请用中文填写)

在原码一位乘法中,符号位和数值位分开运算,运算结果的符号等于被乘数和乘数的符号异或

补码

机器数的移位运算

计算机中的移位运算分为:

逻辑移位: 对无符号数据移位,导致无符号数据的数值(无正负)放大或缩小。
算术移位: 对带符号数据(机器数)移位,在数值的绝对值上进行放大或缩小,同时,符号位必须要保持不变。
循环移位: 所有的数据位在自身范围内进行左移或者右移,左移时最高位移入最低位,右移时最低位移入最高位。  

加减运算

c383db3c25a84bdfb5933c498aadc528.png

d804355a23384bbfb630f537680c88fa.png

        在定点二进制运算器中,减法运算一般是通过补码运算的二进制加法器来实现的。

        求补规则是将[Y]补包括符号位在内每一位取反,末位加1。(√)

乘法运算

【计算机组成原理】补码一位乘 - 知乎

        在补码一位乘法中,A补是累加和,X补是被乘数,Y补是乘数,当判断YnYn+1=01时,执行的运算时1/2(A补+X补)

        溢出判断

机器数的移位运算

        某字长为8位的计算机中,已知整型变量x,y的机器数分别为[X]补=11110100,[y]补=10110000,若整型变量z=2*x+y/2,则z的机器数为11000000

1        10000011        10010010000000000000000        -25.125        1        10000110        

00001111010000000000000        C307A000

  • 46
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值