为什么带上符号位计算,仍然可以算出正负数对应的补码

请添加图片描述

文章目录

  • 🚀前言
  • 🚀 为什么要引入原反补码
    • ✈️ 利用加法表示减法
    • ✈️ 关于数字在计算机中的存储
    • 🚀 数学解释
  • 🚀 为什么带上符号位计算,仍然可以算出正负数对应的补码

🚀前言

为应付期末,速成数电,看到原反补码,不知道为啥计算结果仍然为补码,查了半天决定记录。

🚀 为什么要引入原反补码

因为对于数的加减运算,加法很容易但是减法很麻烦(硬件上实现),所以大佬们利用加法表示减法。下面我们来看具体如何操作:

✈️ 利用加法表示减法

我们用一个🌰来解释:

用两个 仅一位十进制数 演示:7-3=7+(-3)
实际上,7+(-3) 等于 7+(10 - 3) = 14。虽然 7+(10-3) 的结果为 14,但由于只有一位,所以高位 1 舍去,结果为 4,与 7-3=4 一致。
将这个结论推广到更多位或其他进制依然适用,比如用三位表示 155-123=155+(-123)=32,同样的 155+(1000-123)=1032,高位去掉结果仍然正确。
在计算机中就是这么算的,上面的过程相当于模拟了计算机计算的过程,只不过计算机使用二进制计算,舍去高位叫 溢出

✈️ 关于数字在计算机中的存储

上面利用 加法表示减法 的过程中用到了 减法,我们引入原反补码来解决这个问题。

在计算机中,我们利用二进制进行数字存储和计算。比如上述的例子 7-3=7+(-3)=7+(10-3) 中,我们眼中的 7-3,而在计算机眼中没有减法只有加法,所以计算机看到的是 7+(-3)
如何区分正负数?规则:正数最高位为0,负数最高位为1。
以有符号 int 类型为例,正数的最高位为0,负数的最高位为1。

为了避免减法,引入了反码和补码:

  • 反码:符号位不变,其他位按位取反。
  • 补码:反码加1。

🚀 数学解释

补码运算的数学基础可以用以下公式来解释:

  1. 对于正数 ( a ) (a) (a)

    • 补码:直接等于原码。
  2. 对于负数 ( − b ) (-b) (b)

    • 补码:等于 ( 2 n − b ) (2^n - b) (2nb)

在补码运算中,加法和减法通过以下方式处理:

a + ( − b ) = a + ( 2 n − b ) = ( a − b + 2 n ) m o d    2 n a + (-b) = a + (2^n - b) = (a - b + 2^n) \mod 2^n a+(b)=a+(2nb)=(ab+2n)mod2n

由于超出 (n) 位的部分被丢弃,最终结果在正确范围内。

🚀 为什么带上符号位计算,仍然可以算出正负数对应的补码

上面铺垫了这么多就是为了介绍这个终极问题,下面为大家解惑:

实际上,有了上面的基础,很好理解为什么符号位参与计算仍对。分为三种情况:正数与正数,负数与负数,负数与正数。但正数与正数和负数与负数不能发生溢出,这种溢出不被允许,所以只考虑正数与负数。
正数绝对值更大时,会进位到符号位,符号位再次进位溢出,然后符号位为0,结果为正数;负数绝对值更大时,不会发生溢出,符号位最后为1,结果为负数。

举例:

表示数值位有三位: a + (-b)
a = 101
b = 011
补码(-b) = 1000 - 0011 = 101
a + (-b) = a + 补码(-b) = 101 + 101 = 1010,a > b溢出到符号位,符号位进位然后结果为正
a = 011
b = 101
补码(-b) = 1000 - 0105 = 011
a + (-b) = a + 补码(-b) = 011 + 011= 110,a < b 没有溢出,符号位为1结果为负


如果帮到你,请帮我点个赞吧!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/724394.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ROS 机器人运动控制

ROS 机器人运动控制 机器人运动 当我们拿到一台机器人&#xff0c;其配套的程序源码中&#xff0c;通常会有机器人核心节点&#xff0c;这个核心节点既能够驱动机器人的底层硬件&#xff0c;同时向上还会订阅一个速度话题。我们只需要编写一个新的节点&#xff08;速度控制节点…

(四十二)Vue之路由及其基本使用Vue Router

文章目录 概念基本使用demo几个注意点 上一篇&#xff1a;&#xff08;四十一&#xff09;Vuex之模块化与命名空间 概念 在计算机科学和网络领域中&#xff0c;路由&#xff08;Routing&#xff09;是指确定数据包在网络中传输的路径和方式的过程。它涉及到根据源地址和目标地…

杂说咋说-关于城市化发展和城市治理的几点建议(浙江借鉴)

杂说咋说-关于城市化发展和城市治理的几点建议&#xff08;浙江借鉴&#xff09; 近年来&#xff0c;浙江省坚持一张蓝图绘到底&#xff0c;推动城市化发展和城市治理不断迈上新台阶&#xff0c;全省城市化水平和城市治理能力牢牢居于全国第一方阵。当前&#xff0c;国内外环境…

DFS(一)

问题一(指数级选择) 从1~n这n个整数中任意选取多个&#xff0c;输出所有可能的选择方案。 首先想一下&#xff0c;在现实世界中&#xff0c;我们要如何解决这个问题。 应该是一个一个枚举&#xff0c;即每个数都可以有两个选择(选/不选)。共有种结果。 想一下&#xff0c;如…

JavaSE 面向对象程序设计高级 方法引用 2024详解

在编程中&#xff0c;方法引用&#xff08;Method Reference&#xff09;是一种技术&#xff0c;它让你能够直接引用一个现有的函数或方法&#xff0c;而无需通过对象实例来调用。这种方法在函数式编程和高阶函数中非常有用&#xff0c;因为它提供了简洁的方式来传递函数行为&a…

洛谷 P1726:上白泽慧音 ← Tarjan算法

【题目来源】https://www.luogu.com.cn/problem/P1726【题目描述】 在幻想乡&#xff0c;上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞&#xff0c;使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新…

【Java】已解决java.util.concurrent.RejectedExecutionException异常

文章目录 一、问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.util.concurrent.RejectedExecutionException异常 一、问题背景 java.util.concurrent.RejectedExecutionException是Java并发编程中常见的一个异常&#xff0c;它通常发生…

前字节员工自爆:我原腾讯一哥们,跳槽去小公司做小领导,就签了竞业,又从小公司离职去了对手公司,结果被发现了,小公司要他赔80万

“世界那么大&#xff0c;我想去看看”&#xff0c;这句曾经火遍网络的辞职宣言&#xff0c;说出了多少职场人心中的渴望。然而&#xff0c;当我们真的迈出跳槽那一步时&#xff0c;才发现&#xff0c;现实远比想象中残酷得多。 最近&#xff0c;一起前字节跳动员工爆料的事件…

每日AI资讯-20240616

1. AI漫画角色一致性大突破 由中山大学和联想团队联合提出AutoStudio&#xff0c;它是一个无需训练的多智能体协同框架。AutoStudio采用基于大语言模型的三个智能体来处理交互&#xff0c;并使用基于扩散模型的Drawer生成高质量图像。实验中&#xff0c;AutoStudio无论是在定量…

使用密钥对登录服务器

目录 1、使用密钥文件登录服务器 2、登录成功画面&#xff1a; 3、如若出现以下状况&#xff0c;则说明密钥文件登录失败 1、使用密钥文件登录服务器 首先需要上传pem文件 2、登录成功画面&#xff1a; 3、如若出现以下状况&#xff0c;则说明密钥文件登录失败 解决方法&…

信息论与大数据安全知识点

文章目录 第一章 绪论&#xfffc;大数据概述大数据安全与加密技术 安全存储与访问控制技术访问控制概念早期的四种访问控制模型局限性总结 大数据场景下的访问控制技术 安全检索技术密文检索基础 安全处理技术同态加密 隐私保护技术 第一章 绪论&#xfffc; 大数据概述 大数…

总结之Docker(四)——镜像修改非ROOT用户权限后生成新镜像并发布

Docker拉去目标镜像 docker pull redis:6.2.5如果出现拉去过程超时&#xff0c;或者连接失败。 添加镜像加速器&#xff0c;以阿里云为例&#xff0c;阿里云目前推广提供镜像加速器&#xff0c;需要登录。 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 生成…

闲置资源共享平台

摘 要 随着共享经济的高速发展以及人们对物品的需求方面也越来也丰富&#xff0c;而且各大高校的大学生们的购买力也越来越强&#xff0c;随之而来的问题就是身边的闲置资源也越来越多&#xff0c;但是也有许多的大学生对物品的要求方面不是很高&#xff0c;也愿意买下经济实惠…

06 PXE高效批量网络装机

1、部署PXE远程安装服务 在大规模的Linux应用环境中&#xff08;如Web集群、分布式计算等&#xff09;&#xff0c;服务器往往并不配装备光驱设备。 在这种情况下&#xff0c;传统的USB光驱、移动硬盘等安装方法显然已经难以满足需求。 那么如何为数十台服务器裸机快速安装系…

坚持刷题|反转链表

文章目录 题目思考实现1. 迭代方式实现链表翻转2. 递归方式实现链表翻转 Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天继续链表&#xff1a;反转链表 题目 LCR 024. 反转链表 思考 翻转链表是一个常见的算法问题&a…

小主机折腾记录27

1.买了一个9600k&#xff0c;3根台电 4G 2666 极光A40&#xff0c;一根台电8G2666 极光A40&#xff0c;一根国惠8G2666&#xff0c;一个惠普3热管散热器 测试结果如下 1&#xff09;三根台电 4G2666 相互兼容&#xff0c;频率2667显示正常&#xff0c;显示为美光颗粒&#xff0…

YOLOv8改进 | 卷积模块 | 用坐标卷积CoordConv替换Conv

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a;《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40篇内容&#xff0c;内含各种Head检测头、损失函数Loss、B…

搜维尔科技邀您共赴2024第四届轨道车辆工业设计国际研讨会

会议内容 聚焦“创新、设计、突破”&#xff0c;围绕“面向生命健康、可持续发展的轨道交通系统” 为主题&#xff0c;从数字化、智能化、人性化、绿色发展等方面&#xff0c;探索轨道交通行业的设计新趋势及发展新机遇。 举办时间 2024年7月10日-12日 举办地点 星光岛-青岛融…

STM32F4 STD标准库串口接收中断+空闲中断例程

STM32F4 STD标准库串口接收中断空闲中断例程 &#x1f516;工程基于STM32F446 ✨用惯了STM32CubeMX傻瓜式配置&#xff0c;突然改用标准库写代码&#xff0c;初始化外设内容&#xff0c;总是丢三落四的。 &#x1f4d7;串口初始化配置 void uart_init(uint32_t bound) {//GPIO…

分析师:是什么导致山寨币在本轮周期表现不佳?

在加密货币领域&#xff0c;山寨币的过度分散化问题逐渐凸显&#xff0c;成为本轮周期内其表现疲软的核心因素。经过深入研究&#xff0c;我发现这种分散化对加密货币市场的整体健康造成了严重威胁。然而&#xff0c;令人遗憾的是&#xff0c;目前看来&#xff0c;我们尚未找到…