打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
计算机组成原理——加减运算 & 溢出判断

文章目录

原码的加减运算

原码的加法运算:

  1. 正+正 → 绝对值做加法,结果为正 (可能会溢出)
  2. 负+负 → 绝对值做加法,结果为负 (可能会溢出)
  3. 正+负 → 绝对值大的减绝对值小的,符号同绝对值大的数
  4. 负+正 → 绝对值大的减绝对值小的,符号同绝对值大的数

原码的减法运算,“减数”符号取反,转变为加法:

  • 正-负 → 正+正
  • 负-正 → 负+负
  • 正-正 → 正+负
  • 负+正 → 负-负

补码的加减运算

对于补码来说,无论加法还是减法,最后都会转变成加法,由加法器实现运算,符号位也参与运算。

补充:

1. 求[-B]补

[-B]补 : [B]补连同符号位一起取反加1

2. 负数补 → 原:

①数值位取反+1;
②负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码

例题

我们先看一道例题:设机器字长为8位(含1位符号位),A = 15,B = -24,求[A+B]补和[A−B]补

先将A B的原码补码都求出来

[A+B]补 = [A]补 + [B]补 = 0,0001111 + 1,1101000 = 1,1110111
原码:1,0001001 真值-9

[A-B]补 = [A]补 + [-B]补 = 0,0001111 + 0,0011000 = 0,0100111
真值+39

我们将题改一下:
其中 C = 124,求[A+C]补和[B−C]补,按照上面方法求出可得:
[A+C]补 = 0,0001111 + 0,1111100 = 1,0001011 真值-117 溢出(实际应该是139,但是溢出后是 -117)
[B−C]补 = 1,1101000 + 1,0000100 =0,1101100 真值+108

溢出判断

溢出条件

  • 只有“正数+正数 ”才会上溢 —— 正+正=负
  • 只有“负数+负数 ”才会下溢 —— 负+负=正

溢出判断:采用双符号位

正数符号为00,负数符号为11
[A+C]补 = 00,0001111 + 00,1111100 = 01,0001011 上溢
[B−C]补 = 11,1101000 + 11,0000100 = 10,1101100 下溢

记两个符号位为S1 S2 ,则V=S1异或S2

  • 若V=0,表示无溢出;
  • 若V=1,表示有溢出。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
为什么计算机用补码存储数据?
源码、补码、反码
原创 -128的二进制有原码 反码和补码 - jason-xiao - 博客园
(转)原码、反码和补码
定点数运算 (转)
计算机的补码怎么理解?-娱乐电影侠的回答
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服