6定点数的运算

一. 导入

0000 1110 —>14

1000 1110 ----> -14


1001 1100

-(4+8+16)= -28

如上所示,14-14 如果用正14和负14进行相加的话,得到的结果是不正确的。

如果用正14减去正十四,结果是正确的,但是要实现减法的话就得使用减法器,这样就会增加硬件成本。所以,我们可以将减法转换为加法运算!

二. 模运算的性质

10-3=7 -3mod12=9

10+9=19 19/12=1…7即19mod12=7

带余除法–设x, m∈Z,m>0则存在唯一决定的整数q和r,使得:x=qm+r,0<=r<m, r就是余数

​ 1. -3 mod 12

​ -3 = (-1)*12+9

  1. 9 mod 12

    9 = 0*12 +9

  2. 21 mod 12

    21 = 1*12+9

  3. -15 mod 12

    -15 = (-2)*12+9

我们可以称 -3,9,21,33,-15是等价的,(mod 12)把所有的整数分为12类,余数为(0~11),mod 12 余数相同的数,都是同一类,都是等价的,即10+(-3), 10+9, 10+21…在(mod 12)的条件下效果是相同的。

因此,在(mod m)的条件下,若能找到负数的补数,就可以用正数的加法来等价代替减法

模-a的绝对值 = a的补数, 比如-3和9就是互为补数,因为二者绝对值之和等于模

a的补数就是a的补码,这样,补码就让减法转变为加法操作,节省硬件成本。

ps: 任何运算结果在(mod 28)后只保留最低8位

总结:

使用补码可以将减法操作转变为等价的加法,ALU中无需集成减法器,执行加法操作时,符号位一起参与运算.

三. 定点数的运算

(一) 移位运算

  1. 算数移位
    机器数采用有符号数
    符号位不参与移位

    1. 原码的算数移位
      1. 左移,右移都补0
      2. 原码算术移位,左移丢1,运算出错,右移丢1,影响精度
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSWq6Fiq-1617271686928)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210401143039670.png)]

    2. 反码的算数移位

      1. 正数的反码和原码相同,因此对正数反码的移位运算都是和原码相同的;右移,高位补0,低位舍弃; 左移,低位补0,高位舍弃
      2. 负数的反码的算数移位: 右移,高位补1,低位舍弃;左移,低位补1,高位舍弃
    3. 补码的算数移位

      1. 正数的补码和原码相同,因此对正数补码的移位运算都是和原码相同的;右移,高位补0,低位舍弃; 左移,低位补0,高位舍弃

      2. 负数的补码算数移位:负数补码=反码末尾+1导致反码最右边几个连续的1都因进位而变为0,直到进位遇到第一个1为止;规律:负数补码中,最右边的1及其右边同原码,最右边的1的左边同反码, 因此:右移, 高位补1,低位舍弃;左移,低位补0,高位舍弃

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b6Eqa7OO-1617271686930)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210401144802780.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MNDdQfYE-1617271686932)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210401145956118.png)]

  2. 逻辑移位

    机器数采用无符号数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FfJUbjYB-1617271686934)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210401141100459.png)]

  1. 循环移位

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aEKIakTU-1617271686935)(C:\Users\93623\AppData\Roaming\Typora\typora-user-images\image-20210401150411901.png)]

    循环移位分为带进位标志位CF的循环移位(大循环), 和不带进位标志位的循环移位(小循环)

    是否带进位则要看是否将进位标志位加入循环位移

    循环移位操作特别适合将数据的低字节数据和高字节数据互换

(二) 定点数的加减运算

  1. 原码的加减运算

    原码的加法运算:

    ​ 正+正 -->绝对值做加法,结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值