深度解析算数左移的争议点

408答疑


文章目录

  • 一、相关概念复习
    • 定点数的移位运算
      • 逻辑移位
      • 算术移位
    • 运算方法和运算电路
  • 二、算数左移示例分析
  • 三、参考资料
    • 鲍鱼科技课件
    • 26王道考研书


一、相关概念复习

定点数的移位运算

当计算机中没有乘/除法运算电路时,可以通过加法和移位相结合的方法来实现乘/除法运算。对于任意二进制整数,左移一位,若不产生溢出,相当于乘以 2(与十进制数的左移一位相当于乘以 10 类似);右移一位,若不考虑因移出而舍去的末位尾数,相当于除以 2。

根据操作数的类型不同,移位运算可以分为逻辑移位和算术移位。

逻辑移位

逻辑移位将操作数视为无符号整数。逻辑移位的规则:左移时,高位移出,低位补 0;右移时,低位移出,高位补 0。对于无符号整数的逻辑左移,若高位的 1 移出,则发生溢出。

算术移位

算术移位需要考虑符号位的问题,即将操作数视为有符号整数。
计算机中的有符号整数都是用补码表示的,因此对于有符号整数的移位操作应采用补码算术移位方式。算术移位的规则:左移时,高位移出,低位补 0,若移出的高位不同于移位后的符号位,即左移前后的符号位不同,则发生溢出;右移时,低位

你可能感兴趣的:(26考研408——疑难杂症,好题思考题分享~,考研,笔记)