【Tools】彻底搞懂原码,反码,补码和变补。

您所在的位置:网站首页 原码补码和反码的含义 【Tools】彻底搞懂原码,反码,补码和变补。

【Tools】彻底搞懂原码,反码,补码和变补。

2024-07-14 20:11:55| 来源: 网络整理| 查看: 265

前言

今天看到微机原理里面提到

对一个负数取补码相当于用0减去一个负数

一下子没有反应过来,不由得去找了一些资料,这里简单总结一下。以下内容大部分参考这个知乎大佬写的文章。

原码,反码,补码

  首先我们先来复习一下原码,反码和补码。   我们都知道,现代计算机都是以二进制来表示数的,那为了能够表示负数,人们约定,最高位用来表示符号位,0代表正数,1代表负数。这就是原码。但是呢,这个原码有很多问题,一个就是只能计算正数与正数相加,负数参与运算会出错(因为有符号位参与运算),另一个就是0有两种表示法:+0和-0。   原码最大的问题其实是两个相反数相加不为0(因为只有符号位不同),因此人们又发明了反码:正数和0的反码等于它本身,负数的反码等于除符号位的其他各位按位取反。这样一来就保证了两个相反数相加的结果是0。但是仍然有问题,那就是负数相加会出错,且0仍然有两种表示方法。   为了解决负数加减的问题,最后提出了补码的概念。补码等于反码加1,这句话只能算是一种运算规律,因为补码概念的提出与反码没有任何关系,它的思想来自于生活最常见的“模”的思想,比如时钟。具体可以去知乎看看相关文章。

补码的美妙与神奇之处 补码的最高位仍然代表了这个数的符号,即0为正数,1为负数,且0只有一种补码表示方法其实通过补码是可以直接算出真值来的! 以4位寄存器为例,1011为-3,它的补码为1101,那么当我们只知道1101时,可以将最高位赋予权值-8,再代入计算:-8*1+4*1+0*2+1*1=-3,正确!因此也体现出补码最高位符号位的重要性。补码的补码等于原码! 这一点我觉得十分巧妙,其实本质就相当于是数值取了两次模,这样就得到原值。 一直被混淆的“变补”

  相信很多人都听过一句话:“减去一个数相当于加上这个数的补码”。如果不去仔细验证,按照补码的思想,很容易认为这句话是对的,但实际上这里混淆了一个非常重要的概念,那就是补码和变补的关系。   补码如前所述,属于一种码制,其思想来源是生活中常见的取模思想。而变补是一种运算方法,它的提出是因为计算机的CPU中的运算器ALU只是加法计算器,不能计算减法,因此在计算A-B这样的表达式时,只能转化为A+(-B),因此,就需要一种二进制位层面的求相反数的方法。对于原码而言,求相反数就是将最高位的符号位取反即可,但是在实际加法运算中,数都是用补码表示的,因此需要当一个数为补码时应该怎么快速求出其相反数,这种运算就叫变补。   变补运算的方法就是补码所有位(含符号位)按位取反,然后加1,相当于是原码变补码的一个扩展版,因此很多人会混淆这二者的关系。   总结来说:变补运算可以实现:补码A - 补码B = 补码A + 补码B的变补运算值,因此,也就有了文章开头的那句结论,其中的“补码”实际上是指变补运算。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭