java进制检测,二进制补码检测进位溢出

让我们把一个事实排除在外 .

当我们添加负操作数和正操作数时,结果将始终在表示范围内 . 当我们添加两个具有相同符号的数字(正数或两者都为负数)且结果符号相反时,就会发生溢出 .

当我们在二进制补码中添加数字时,我们将第一个操作数的符号位与第二个操作数的符号位相加 .

当我们添加正正操作数时,符号位的总和为0 .

0XXX (positive)

+ 0XXX (positive)

------

0XXX (positive)

这意味着无论发生什么都没关系,在添加正面正操作数时永远不会有进位 .

所以,如果有一个随身携带的符号位

1

0XXX (positive)

+ 0XXX (positive)

------

1XXX (negative)

携带位1将成为结果的标志 . 这意味着我们添加了两个正操作数,结果我们得到了一个负数 .

进位= 0进位标志位= 1 OVERFLOW!

当我们添加负负操作数时,符号位的总和为0且带有进位 .

1XXX (negative)

+ 1XXX (negative)

------

10XXX (positive)

这意味着无论发生什么都没关系,在添加负负操作数时总会有进位 . 请注意,通过“默认”,结果将是正数 . 它“需要”随身携带将结果调整为与操作数相同的符号 . 如果符号位中有一个进位,我们将有两个负操作数,结果为负 .

所以,如果 no 携带到符号位

0

1XXX (negative)

+ 1XXX (negative)

------

10XXX (positive)

随身携带位0将成为结果的符号 . 这意味着我们添加了两个负操作数,结果我们得到了一个正数 .

执行= 1进位符号位= 0溢出!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值