加法运算及其溢出

一:概述

补码的主要作用:

两个有符号数可以直接相加
加减运算基本思路:

加减运算基本思路:

1.转换成x+y的形式
2.计算[x]补+[y]补

加法运算

设机器字长为8位(含1位符号位),A=15,B=-24,求[A+B]补和[A-B]补
在这里插入图片描述

[A+B]补=[A]补+[B]补=00001111+11101000=11110111

原码:10001001 真值:-9

[A-B]补=[A]补+[-B]补=00001111+00011000=00100111

注:[-B]补等于B的补码连同符号位取反加1
例题:C=-124,求[A+C]补和[B-C]补
在这里插入图片描述

在这里插入图片描述
逻辑表达式:
与:如ABC,表示A与B与C
仅当A,B.C均为1时,ABC为1
A,B ,C中有一个或多个为0,则ABC为0

或:如A+B+C,表示A或B或C
仅当A,B,C均为0时,A+B+C为0
当且仅当A,B,C中有一个或多个为1,则A+B+C为1.

非:
若A为1,则A取非0
若A=0,则A取非为1
在这里插入图片描述

判断溢出:

方法一:

在这里插入图片描述

方法二:

采用一位符号位,根据数据位进位情况判断溢出
符号位的进位C5 最高数位的进位C1
正溢出 0 1
负溢出 1 0

即C5和C1不同时有溢出
处理“不同”的逻辑符号:异或⊕
溢出逻辑判断表达式V=C5⊕C1
若V=0,表示无溢出;V=1,表示有溢出。

异或逻辑

0⊕0=0
0⊕1=1
1⊕0=1
0⊕0=0

方法三 双符号位

正数符号为00,负数符号为11
在这里插入图片描述
记两个符号位为S1S2,则V=S1⊕S2
若V=0,表示无溢出;若V=1,表示有溢出。

[A+B]补=[A]补+[B]补=00001111+11101000=11110111

[A-B]补=[A]补+[-B]补=00001111+00011000=00100111

采用双符号位的意味运算;低位符号位参与移位,高位符号位代表真正的符号。
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值