DJ2 |
您所在的位置:网站首页 › 二进制数的减法运算规则 › DJ2 |
目录 一、无符号数的算术运算 1. 加法运算 2. 减法运算 二、有符号数的算术运算 1. 原码运算 2. 补码运算 三、定点数的补码加减运算 1. 基本关系式 2. 补码加减运算规则 四、溢出判断 1. 引入 2. 溢出 3. 溢出的判断方法 五、移位操作 (1)逻辑移位 (2)算术移位 二进制数的运算分类 二进制的加法运算遵循法则:0+0=0,0+1=1,1+0=1,1+1=0(有进位) 二进制的减法运算遵循法则:0-0=0,1-0=1,1-1=0,0-1=1(有借位) 由上述例题可见,原码加减运算复杂。因为操作数取绝对值运算,所以实际操作不仅取决于操作码(是加还是减),还与操作数的正负有关,并且还可能需要对运算结果进行修正。 而补码运算相对简单,因此在计算机中基本采用补码加减法。 2. 补码运算补码运算的特点 将减法转换为加法 将真值表示为补码变补 变补方法:连同符号位变反再加一。 验证方法:分正数、负数情况讨论,直接进行转换即可。 Q:“补码的运算中符号位参与了运算” ? 在补码的运算中为什么符号位可以参与运算?_狂放不羁霸的博客-CSDN博客在补码表示中仍以最高位作为符号位,即0正1负,这点与原码相同。但补码的符号值是由补码定义式计算而得,它是数值的一部分,可以与尾数一起直接参与运算,不需要单独处理。 操作数用补码表示,符号位参与运算,结果用补码表示。 1. 基本关系式应用举例 根据基本关系式进行运算,便能得到正确的答案。 2. 补码加减运算规则这张图说明了进行补码加减运算的流程。 四、溢出判断 1. 引入在上述六个例子中,由于机器数长度为 5 位,并且由补码表示,因此定点整数表示范围为:-16 ~ 15,运算结果超出这个范围即为溢出。 2. 溢出① 溢出:运算结果超出机器数的表示范围。 ② 正溢:两正数相加绝对值超出允许的表示范围。 ③ 负溢:两负数相加绝对值超出允许的表示范围。 3. 溢出的判断方法符号说明 在补码运算中,符号位将会参与运算。 ① 判断逻辑一 溢出的标志是结果的符号 Sf 与两个操作数的符号恰好相反。 只有同号数相加才可能产生溢出,因为一正一负相加,其结果绝对值不可能超过模。 ② 判断逻辑二 溢出的标志是符号位进位与尾数最高位进位不同: Cf 与 C 不同时,有溢出;Cf 与 C 相同时,无溢出。③ 判断逻辑三 溢出的标志是第一符号位和第二符号位不一致。 单符号位的信息量只能表示两种可能:数为正或为负,如果发生溢出,就会使符号位的含义发生混乱。将符号位扩充为两位,就能判别是否溢出以及正确的结果符号 —— 双符号位表示法。 双符号位表示法00正数11负数 溢出的标志00结果为正,无溢出01结果为正,是正溢10结果为负,是负溢11结果为负,无溢出不管结果是否有溢出,第一符号位 Sf1 始终能指示运算结果的正负。 原因:若将机器数长度扩充为 6 位,由补码表示,则定点整数表示范围为:-32 ~ 31,上述六个例子的运算结果没有超出这个范围,因此不会发生溢出,即所有运算结果都是正确的。因此,第一符号位 Sf1 始终能指示运算结果的正负。但实际上机器数长度为 4 位,所以上述结果仅作为判断溢出的工具。 采用多符号位的补码又称变形补码,它的实质是扩大了模数 M、增加了数据位的宽度。个人理解,就是扩大了定点整数表示范围,使得运算结果不会发生溢出。 五、移位操作 (1)逻辑移位主要针对于纯二进制代码 —— 无正负和大小 —— 可能表示的是一个字符。 应用:以串行方式发送数据。 (2)算术移位数码位置和数值发生变化, 符号位不变。 希望实现的效果: 左移一位,真值乘以二;右移一位,真值除以二。① 正数补码以及任意数原码的移位规则 移位规则:数符不变,空位补零。 Q:为什么空位补零? A:因为我们想达到 希望实现的效果,只有空位补零才能得到想要的结果。 第一符号位和第二符号位其实都是有效数值位,为了达到 希望实现的效果 才进行上述操作。 ② 负数补码的移位规则 移位规则:数符不变,左移空位补零,右移空位补一。 Q:为什么左移空位补零,右移空位补一? A:因为我们想达到 希望实现的效果,只有这样才能得到想要的结果。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |