首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >计算机组成原理---关于补码,移位和溢出的分析

计算机组成原理---关于补码,移位和溢出的分析

作者头像
阑梦清川
发布2025-07-12 10:24:04
发布2025-07-12 10:24:04
1490
举报

1.补码的快速计算

下面的这个介绍的就是我们的补码的快速的计算方法:

1)普通的计算的方法:源码符号位不变,其他位按位取反,然后+1,这是最普通的,也是最朴素的计算的方法,初学者进行这个组成原理的这个部分的内容的学习的时候,通常遇到的都是这个样子的方法;

2)快速的计算的方法:下面的这个黑色的笔写的这个部分,我们直接从后往前看,找到第一个1,第一个1后面的内容不变,其他的前面的内容全部取反即可,这个就是我们的源码–>补码的快速的计算方法;

2.移位运算

下面的这个解释一下我们的补码的移位运算(算术移位)的相关的规则把,就是我们的源码左右移的时候是补上0,对于这个反码我们是补上1,但是我们的补码的规则综合了两者,就是左移的时候是补上1,右移的时候是补上0;

原因分析:通过下面的这个图可以直观的看到我们的这个补码的前面是和我们的反码保持一致的,而且这个补码的后半部分和我们的源码保持一致

逻辑移位:无论是什么数字,都是补上0,无论是左移还是右移;

3.溢出

下面展示的就是两个不同的情况: 1)两个正数经过运算之后成为了一个负数; 2)两个小数(正数)运算之后成为负数;

其实两个例子的本质是一样的,就是超出了范围,导致了这个溢出的情况

下面的这个是关于我们的溢出的具体在我们的这个数轴上面的不同的分类的情况:

在不同的区域,对应着不同的溢出的分类,负上溢正上溢之类的;

4.溢出判断方法

4.1第一方法

一位符号位+逻辑表达式进行综合的判断:

4.2第二方法

采用符号位进位进行判断,通过对于我们的符号位和进位是0还是1,表示我们的这个对应的不同的溢出的类型;

4.3第三方法

使用双符号位的方法,记录两个符号位的数据,进行异或运算,判断我们的这个结果是不是溢出的情况;

5.符号拓展

分为正数和负数的情况,其中里面有细分成为这个整数和小数的情况:

1.对于正数,这个扩展的规则是统一的;

2.但是对于负数,我们需要分为不同的码制进行区分和辨别处理;

6.经典题目

逻辑移位:一定是添加0;

算术移位:符号位不需要变动,也就是1;

下面的这个情况:首先可以知道这个是补码之间的运算(如果是源码,肯定是不会让我们去直接进行加法运算的)

列竖式相加,然后进行二进制转换为十进制即可;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.补码的快速计算
  • 2.移位运算
  • 3.溢出
  • 4.溢出判断方法
    • 4.1第一方法
    • 4.2第二方法
    • 4.3第三方法
  • 5.符号拓展
  • 6.经典题目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档