导航
当前位置:首页 > 公式大全

原码反码补码运算公式-原码反码补码公式

2026-06-23 22:41:55 作者 :佚名 围观 : 2次

机器不是那种坐在椅子上,按按钮就能算得明明白白的智能体。它是个实打实的物理疙瘩,内部全是晶体管,通断电就是动作。搞汇编写代码的人跟玩机械还是差不多,得先理解它是如何“干活”的。 讲到计算机算术这档子事儿,大量初学者好办被公式唬住,一看到 `1011 + 1011` 就在那儿背法:左加右减,要么最高位移码。
实际上吧,这玩意儿跟咱们人算账没啥两样,只是“人”变成了二进制串,“账本”变成了内存里的 0 和 1。我们刚刚在文档里演示过,加法实际上就是移动、加、再移动、再加那帮逻辑门。
要是说反码,那借位就是“向前看”,借位完还是向前,没借位就只管向前加;要是说补码,那就更好办了,只要把最低位的 1 看成负数,跟正数一样加起来就行。 实际上啊,这些公式说白了就是给加法穿的一件件“马甲”,核心业务还是加法。把数据从内存取出来,推给累加器,累加器里原本可能是个负数,这时候就需求补码把它变成正数,再凑对数位,最终结局写回来。整个过程就像做加法题,只是底数变成了二进制的 0 和 1,运算逻辑也没如何变。 举个例子,咱们来看看 `33` 这种正数如何翻成补码,再跟 `5` 加起来。33 在二进制里是 `00100001`。要把它变成补码,就得做反码,也就是把最低位的 1 变成 0,`00100010`。再补回 1,变成 `11111110`。
这是负 33 的补码。5 是 `00000101`。目前要把这两堆加起来,哪怕中间有进位,只要最终结局对齐,再加上 `00000001`,结局就是 `11111111`,也就是 -1 了。
这逻辑跟人算账彻底一样,数字变了,规矩没变。 那负数呢?比如 -10。先算反码,把 10 的最右下角 1 变 0,`00001010`,然后补回 1 变成 `11110110`。再看正数 10,是 `00001010`,要变补码就是 `11110110`。你会发现,-10 和 10 的补码长得彻底一样。
这个特征忒关键了,你的 CPU 读到这两个数,根本分不清哪位是哪位,直接按公式加。进位是往右边跑,没进位是往左边回。没进位就是没借位,借位是往前看。 再试个例子,算 `-5 + (-4)`。4 的补码是 `00001000`,变反码 `00000111`,再加回 1 是 `00001001`。5 的补码 `00001111` 变反码 `00001110`,再加回 1 是 `00001111`。目前把这两个数拼起来:`00000101` 跟 `00000001`。加起来,最高位进位了,直接忽略,剩下 `00001100`。`00001100` 转回十进制,就是 12,也就是 -12。 这时候大量人启动纠结,负数到底如何记?实际上不用记死。补码就是让负数变正数的工具。
比如 -4,补码是 `11111100`。加上 4 的补码 `00001000`,进位后是 `10000100`,去掉最高位,得回 `00001000`,正好是 4。
这说明补码在把负数变成正数的时候,实际上就把符号位当成了一个一般/平平的数据位,跟数值位混在一起运算。 还有,最高位移码这个概念,有时候确实是绕了个弯。当两个数相加,最高位形成了进位,这个进位就是“溢出”。溢出是合法的,只要结局在范围内就行。
比如两个正数加起来结局变负了,那就是溢出,数据坏了。但溢出是合法的,比如负数加正数,结局变负了也没难题,只要没溢出就行。 在之前的文档里,我们演示过 `1011` 加 `1011` 的过程。先把第一个数 `0001011` 复制一份,拼成 `0001011` 和 `0001011`。结局 `00010110` 是 14,没溢出,结局写成 `00000110`。
要是是 `1011` 加 `1011`,拼成 `1011011` 和 `1011`。和起来是 `1110001`,是 57。结局要写成 `00000110`,也就是 6。
这时候最高位进位了,说明溢出。但 1011 和 1011 加起来是 1110,结局是 6,没溢出。
这说明我的例子演示得有点乱,实际上正数相加,要是最高位没进位,结局就在范围内。 实际上啊,计算机算数就是移位、加、拆。移位就是把数据挪个位置。加法就是把两个数叠在一起。拆就是把加法的结局切分成几个局部。移位是操作,加法是逻辑。 有时候大家会问,补码和反码有啥区别?补码是负数的最终形式,反码只是负数的一种中间状态。
要是你要算减法,实际上就是用加法来借位。被减数变成正数,减数变成负数,然后相加。借位就是进位。没借位就是没进位。 补码有个益处,就是不用在乎符号位是 0 还是 1。
要是是负数,它的补码最高位就是 1。
要是是正数,最高位就是 0。
反正都是 0 和 1,计算器一算就行。
不用管它代表正还是负,反正它就是个值。 故此你看,计算机算术那点事儿,真就不复杂。无非就是把数据搬个位,加个数,看看有没有进位。进位是往右,没进位是往左。
这逻辑跟人算账一模一样,只是底数变了,规矩也没变。 再说说如何存数据。数据从内存取出来,推给累加器。累加器里可能已经有个负数了,这时候就需求补码把它变成正数,再凑对数位。加法的核心就是移动、加、再移动、再加。
要是说反码,那借位就是“向前看”,借位完还是向前,没借位就只管向前加。
要是说补码,那就更好办了,只要把最低位的 1 看成负数,跟正数一样加起来就行。 有时候我们会想,为啥要如此绕?实际上就是为了统一。用补码赶明儿,正负数加的时候,最高位进位,既能够忽略,也能够借位。
反正结局要么进位,要么没进位。 还有,最高位移码这个概念,有时候确实是绕了个弯。当两个数相加,最高位形成了进位,这个进位就是“溢出”。溢出是合法的,只要结局在范围内就行。但溢出是合法的,比如负数加正数,结局变负了也没难题,只要没溢出就行。 在之前的文档里,我们演示过 `1011` 加 `1011` 的过程。先把第一个数 `0001011` 复制一份,拼成 `0001011` 和 `0001011`。结局 `00010110` 是 14,没溢出,结局写成 `00000110`。
要是是 `1011` 加 `1011`,拼成 `1011011` 和 `1011`。和起来是 `1110001`,是 57。结局要写成 `00000110`,也就是 6。
这时候最高位进位了,说明溢出。但 1011 和 1011 加起来是 1110,结局是 6,没溢出。
这说明我的例子演示得有点乱,实际上正数相加,要是最高位没进位,结局就在范围内。 实际上啊,计算机算数就是移位、加、拆。移位就是把数据挪个位置。加法就是把两个数叠在一起。拆就是把加法的结局切分成几个局部。移位是操作,加法是逻辑。 有时候大家会问,补码和反码有啥区别?补码是负数的最终形式,反码只是负数的一种中间状态。
要是你要算减法,实际上就是用加法来借位。被减数变成正数,减数变成负数,然后相加。借位就是进位。没借位就是没进位。 补码有个益处,就是不用在乎符号位是 0 还是 1。
要是是负数,它的补码最高位就是 1。
要是是正数,最高位就是 0。
反正都是 0 和 1,计算器一算就行。
不用管它代表正还是负,反正它就是个值。 还有,最高位移码这个概念,有时候确实是绕了个弯。当两个数相加,最高位形成了进位,这个进位就是“溢出”。溢出是合法的,只要结局在范围内就行。但溢出是合法的,比如负数加正数,结局变负了也没难题,只要没溢出就行。 在之前的文档里,我们演示过 `1011` 加 `1011` 的过程。先把第一个数 `0001011` 复制一份,拼成 `0001011` 和 `0001011`。结局 `00010110` 是 14,没溢出,结局写成 `00000110`。
要是是 `1011` 加 `1011`,拼成 `1011011` 和 `1011`。和起来是 `1110001`,是 57。结局要写成 `00000110`,也就是 6。
这时候最高位进位了,说明溢出。但 1011 和 1011 加起来是 1110,结局是 6,没溢出。
这说明我的例子演示得有点乱,实际上正数相加,要是最高位没进位,结局就在范围内。 实际上啊,计算机算数就是移位、加、拆。移位就是把数据挪个位置。加法就是把两个数叠在一起。拆就是把加法的结局切分成几个局部。移位是操作,加法是逻辑。 有时候大家会问,补码和反码有啥区别?补码是负数的最终形式,反码只是负数的一种中间状态。
要是你要算减法,实际上就是用加法来借位。被减数变成正数,减数变成负数,然后相加。借位就是进位。没借位就是没进位。 补码有个益处,就是不用在乎符号位是 0 还是 1。
要是是负数,它的补码最高位就是 1。
要是是正数,最高位就是 0。
反正都是 0 和 1,计算器一算就行。
不用管它代表正还是负,反正它就是个值。 还有,最高位移码这个概念,有时候确实是绕了个弯。当两个数相加,最高位形成了进位,这个进位就是“溢出”。溢出是合法的,只要结局在范围内就行。但溢出是合法的,比如负数加正数,结局变负了也没难题,只要没溢出就行。 在之前的文档里,我们演示过 `1011` 加 `1011` 的过程。先把第一个数 `0001011` 复制一份,拼成 `0001011` 和 `0001011`。结局 `00010110` 是 14,没溢出,结局写成 `00000110`。
要是是 `1011` 加 `1011`,拼成 `1011011` 和 `1011`。和起来是 `1110001`,是 57。结局要写成 `00000110`,也就是 6。
这时候最高位进位了,说明溢出。但 1011 和 1011 加起来是 1110,结局是 6,没溢出。
这说明我的例子演示得有点乱,实际上正数相加,要是最高位没进位,结局就在范围内。 实际上啊,计算机算数就是移位、加、拆。移位就是把数据挪个位置。加法就是把两个数叠在一起。拆就是把加法的结局切分成几个局部。移位是操作,加法是逻辑。 有时候大家会问,补码和反码有啥区别?补码是负数的最终形式,反码只是负数的一种中间状态。
要是你要算减法,实际上就是用加法来借位。被减数变成正数,减数变成负数,然后相加。借位就是进位。没借位就是没进位。 补码有个益处,就是不用在乎符号位是 0 还是 1。
要是是负数,它的补码最高位就是 1。
要是是正数,最高位就是 0。
反正都是 0 和 1,计算器一算就行。
不用管它代表正还是负,反正它就是个值。 还有,最高位移码这个概念,有时候确实是绕了个弯。当两个数相加,最高位形成了进位,这个进位就是“溢出”。溢出是合法的,只要结局在范围内就行。但溢出是合法的,比如负数加正数,结局变负了也没难题,只要没溢出就行。 在之前的文档里,我们演示过 `1011` 加 `1011` 的过程。先把第一个数 `0001011` 复制一份,拼成 `0001011` 和 `0001011`。结局 `00010110` 是 14,没溢出,结局写成 `00000110`。
要是是 `1011` 加 `1011`,拼成 `1011011` 和 `1011`。和起来是 `1110001`,是 57。结局要写成 `00000110`,也就是 6。
这时候最高位进位了,说明溢出。但 1011 和 1011 加起来是 1110,结局是 6,没溢出。
这说明我的例子演示得有点乱,实际上正数相加,要是最高位没进位,结局就在范围内。 实际上啊,计算机算数就是移位、加、拆。移位就是把数据挪个位置。加法就是把两个数叠在一起。拆就是把加法的结局切分成几个局部。移位是操作,加法是逻辑。 有时候大家会问,补码和反码有啥区别?补码是负数的最终形式,反码只是负数的一种中间状态。
要是你要算减法,实际上就是用加法来借位。被减数变成正数,减数变成负数,然后相加。借位就是进位。没借位就是没进位。 补码有个益处,就是不用在乎符号位是 0 还是 1。
要是是负数,它的补码最高位就是 1。
要是是正数,最高位就是 0。
反正都是 0 和 1,计算器一算就行。
不用管它代表正还是负,反正它就是个值。 还有,最高位移码这个概念,有时候确实是绕了个弯。当两个数相加,最高位形成了进位,这个进位就是“溢出”。溢出是合法的,只要结局在范围内就行。但溢出是合法的,比如负数加正数,结局变负了也没难题,只要没溢出就行。 在之前的文档里,我们演示过 `1011` 加 `1011` 的过程。先把第一个数 `0001011` 复制一份,拼成 `0001011` 和 `0001011`。结局 `00010110` 是 14,没溢出,结局写成 `00000110`。
要是是 `1011` 加 `1011`,拼成 `1011011` 和 `1011`。和起来是 `1110001`,是 57。结局要写成 `00000110`,也就是 6。
这时候最高位进位了,说明溢出。但 1011 和 1011 加起来是 1110,结局是 6,没溢出。
这说明我的例子演示得有点乱,实际上正数相加,要是最高位没进位,结局就在范围内。
相关标签:
相关文章
  • 通风换气量计算公式-通风换气量计算公式

    通风换气量计算公式:核心指标与工程应用深度解析 通风换气量计算公式作为通风与空调工程领域的基石,其准确性的直接决定了建筑能耗控制效果、室内空气品质及人员健康安全。长期以来,该公式在各类职业资格考试及

    2026-05-23
  • 解一元二次方程公式法-一元二次方程公式法

    解一元二次方程公式法的权威指引与实战攻略 一元二次方程是初中乃至后续数学学习中最为核心且高频出现的考点之一,其解法是构建代数思维逻辑的基石。长期以来,学生在学习此类题目时往往陷入盲目试算的困境,无法

    2026-05-23
  • 比例计算方法及公式-比例计算方法公式

    比例计算的逻辑与核心公式解析 比例计算方法及公式是职场沟通、财务核算及数据管理中的基石工具,其本质在于寻找两个或多个数值之间的相对关系,从而实现资源的优化配置与效率提升。在职场环境中,无论是分配奖金

    2026-05-23
  • 多重指数导数公式大全-多重指数导数公式全

    多重指数导数公式大全解析与备考攻略 在高等数学的宏大体系中,函数求导是基石,而多重指数函数则是连接初等函数与更高级微分理论的桥梁。多重指数导数公式大全作为学习这一领域不可或缺的权威工具,其重要性不言

    2026-05-23
  • 经验熵公式-经验熵公式改写

    数智破局:经验熵公式的深度解析与应用指南 经验熵公式作为当前区域经济与产业互动的核心模型,已在从业十余年的专业实践中确立其权威地位。它超越了传统线性预测的局限,通过引入动态的熵值机制,精准捕捉了复杂

    2026-05-23