精华内容
下载资源
问答
  • 原码、反码补码、移码的作用? ... 为了便于运算,带符号位的机器数可采用原码、反码和补码等不同的编码方法,机器数的这些编码方法称为码制。  原码、反码补码、移码如何表示?  举例:[+4
  • 为什么需要反码和补码反码 o在计算机的时候,只有加法器没有减法器,为了将减法转换为加法,设计反码; o但是反码有缺陷,正负相加 0 的表示不唯一; 补码 o为了解决反码正负相加不唯一的情况,使用高位溢出解决;
  • 作者:张天行 ...序言第一版答案写于2016年8月,当时我正试图理解补码规则的逻辑,并用结果写了一篇回答发在知乎公众号上,因为收到的回复很乐观,让我一度认为已经把握问题的全貌。事实上答案在符号位...

    作者:张天行
    链接:https://www.zhihu.com/question/23172611/answer/119406298
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    一、
    序言第一版答案写于2016年8月,当时我正试图理解补码规则的逻辑,并用结果写了一篇回答发在知乎和公众号上,因为收到的回复很乐观,让我一度认为已经把握问题的全貌。事实上答案在符号位的论述上存在谬误,多亏知友在回复中指出,为此我进行了更深入的思考,重新编辑此答案,希望能更接近问题的本原。

    二、
    重温运算规则首先我想把整套关于原码反码补码的运算规则准确清晰地写一遍,方便急需应用的知友参考,也希望大家首先能记住这套规定,再开始进一步的探讨。

    所谓原码就是机器数,是加了一位符号位的二进制数,正数符号位为0,负数符号位为1,计算机中存储、处理、运算的数据通常是8位、16位、32位或64位的,这里以最简单的8位为例讲解。注意符号位是包含在8位中的其中1位,故可直观读出的数只有7位(只有后7位数可以按权展开)。有心人可能注意到原码是有缺陷的,它只能表示255种状态,因为00000000(+0)和10000000(-0)其实是一个数,因此原码的表示范围成了-127到+127,这个问题需要神奇的补码来解决,因为在补码中10000000被用来表示-128。

    所谓反码,英语里又叫ones’ complement(对1求补),这里的1,本质上是一个有限位计数系统里所能表示出的最大值,在8位二进制里就是11111111,在1位十进制里就是9,在3位十六进制里就是FFF(再大就要进位了)。求反又被称为对一求补,用最大数减去一个数就能得到它的反,很容易看出在二进制里11111111减去任何数结果都是把这个数按位取反,0变1,1变零,所以才称之为反码。用原码求反码的方法是,正数不变,负数保留符号位1不变,剩下位按位取反。

    所谓补码,英语里又叫two’s complement(对2求补),这个2指的是计数系统的容量(模),就是计数系统所能表示的状态数。对1位二进制数来说只有0和1两种状态,所以模是10也就是十进制的2,对7位二进制数来说就是10000000,这个模是不可能取到的,因为位数多一位。用模减去一个数(无符号部分)就能得到这个数的补,比如10000000-1010010=0101110,事实上因为10000000=1111111+1,稍加改变就成了(1111111-1010010)+1,所以又可以表述为先求反再加1。总结求补码的方法就是正数依旧不变,负数保留符号位不变,先求反码再加上1。

    记住了怎么求补码,接下来讲讲运算。通过原码的符号位和数值,我们能迅速指出它代表的数,判断其正负并进行四则运算,相比而言反码和补码对于人则显得过于晦涩。如果说原码是给人看的数字语言,那么补码就是计算机的数字语言。计算机不需要知道什么是正负、大小,这些判断对它而言过于复杂。事实上它存储、处理、传输的数都只有补码一种形式,人所做的加减乘除,在计算机里只通过相加和移位就能解决,这都来自于补码系统的内在自洽和巧夺天工的神奇魔力,也是后文要阐述的重点。

    对加法和减法,按上文的方法求得补码之后,直接相加就可以了,但相加的时候符号位一定要一起参与运算,有时候,两符号位相加或者接受来自低位的进位会发生溢出,就扔掉溢出的一位(稍后会解释为什么),由新的符号位决定结果的正负,如果是0表示正数,结果就是原码,如果是1表示负数,结果还要再求补数得到原码。

    至此我介绍了原码反码补码的规定,以及如何求补码并进行加减法(乘除暂不涉及,事实上懂了加减法的奥秘,乘除很容易理解),对于一个工程人才来说,上面的内容已经足够应付所有具体问题。剩下的则是一些“无用”的思考,关于为何这套法则能够化减为加,以及人为规定的符号位在运算中为何总是能精确地指示结果的符号。

    三、
    无用之用数字是用来记录现实世界数量属性的语言。

    而任何计数系统都必须有两个参数:容量和精度。

    模是衡量计数系统容量的参数。模代表了计数系统所能表示和存储的状态数。

    任何有限的计数系统都有一个确定的模。如时钟的模是12(即只有一个位的十二进制系统,若再加一个大钟,使小钟转一周大钟加一刻度,就是有两个位的十二进制系统),再比如8位计算机的模是2^8=256D(每一位也可以单独看做一个模为2的计数系统)。

    问题一:
    化减为加对同一计数系统中的数量可以定义运算如加减,但运算结果超出预设位数时,就要发生溢出,这个溢出其实就是模,是时钟的一整圈(因此丢掉它没有影响),如果进位没有被另一个计数系统接受,结果看似“失真”,本质上是进入了“第二次循环”。

    以时钟系统为例:8+7=15D=13(十二进制)>10(十二进制),进位1溢出丢失(除非用另一个时钟接收这个进位),在表盘上(即一位十二进制计数系统中)呈现为3,而8-5=8+(-5)=3也得到了相同结果。这就说明在有限容量的计数系统中,+7和-5是完全相同的,而它们正是关于模12的一对补数。

    因此我们在有限的计数系统做了这种定义:正数补数即为本身,负数A【补】=模-绝对值(A)。一个数加上另一个数(可以是正数也可以是负数),结果等于加上这个数的补数,若有进位则舍弃进位。这么做的重大意义在于极大地方便了计算机进行数据处理,要知道对人而言减法并非难事,但用门电路实现就复杂得多了,减之前还要判断大小考虑次序。

    问题二:
    符号位参与运算在8位计算机中,一个字节可以表示256种状态,把字节看做一个钟的话,刻度可以随便标,不如取0点钟为-128,正对的6点钟为0,即存储范围是从-128到127,用二进制补码表示是10000000~01111111(10000000用来表示-128似乎是人为定义的,因为原码无法表示-128,按正常程序更无法求得其补码)。在这里插入图片描述符号位是我认为理解补码的关键所在,也是关于补码最神奇的地方。人类“生硬”地添加了符号位,把256种状态剪成正负两半,还“生硬”地规定-128的补码为10000000,但用补码运算的时候,一切就像“水往低处流”般正确和谐自然:符号位参与运算,接受来自低位的进位,永远能忠实地指示结果的正负。

    我举个例子,你们感受一下:

    所谓的“负数加负数会变成正数,正数加正数会变成负数”,本质还是在于,计数系统是无法表示超出其取值范围的计算结果的。

    120D+120D=01111000B+01111000B=11110000B,符号位的1来自低位进位,指示了结果是负数,所以需要求补得10010000B也就是-16D,放在钟面上就是从120顺时针旋转120格到240的位置,只不过系统最大只取到127,240的位置就是-16的位置,而且-16和240正是关于模256的一对补数。-120D-120D=16D也是一样的道理。在有限的计数系统内,由于位数的限制,发生溢出的情况下无法得到计算真实值,得到的是真实值关于模的补数。在这里插入图片描述看到这里是不是有那么点味道呢,我给你们总结一下:加法都是从低位往高位做的,如果两个数(补码),后七位相加产生了进位,说明
    又溢出了一次,每当溢出一次(就是越过了-128这个正负分界点),符号就要反一下,0变1,1变0。符号是1的,说明大得越界了,需要再求个补,用取值范围内的负数表示结果;符号是0的,说明小得越界了,但由于正数的补数就是本身,就不必再求补了。

    四、后记
    从八月底的初稿到这篇文章,中间经历了差不多四个月的时间,我对于补码问题的认识也经历了困惑到清晰到困惑到再清晰这一过程,其中修改超过十次,思考所花的时间更是不计其数。从参加考试的角度看,我熟记的运算规则早已足够我应付所有题目,但我仍然不愿意半途而废,原因有二:大一学习线性代数时,曾经挂过科,因为对于定理和公式背后的含义一无所知,而老师也不加讲解,只一味让我们死记做题。虽然很多同学都适应这种所谓的“工科数学学习”,然而这对我而言简直如同梦魇,没有理解内化如何能称得上学习,不过是应付考试然后忘的精光罢了。我很幸运的是,在准备补考时读到了网上广为流传的孟岩老师的文章《理解矩阵》,我记得那是一个冬天的晚上,读完文章后我很兴奋,一直到半夜都睡不着,这是我第一次体会到数学体系的和谐自洽以及数学的深刻性在工程中的巨大威力,从那以后我才逐渐找到了学习数学的乐趣。

    《理解矩阵》中有一段话至今我还记得,现摘抄如下:

    自从1930年代法国布尔巴基学派兴起以来,数学的公理化、系统性描述已经获得巨大的成功,这使得我们接受的数学教育在严谨性上大大提高。然而数学公理化的一个备受争议的副作用,就是一般数学教育中直觉性的丧失。数学家们似乎认为直觉性与抽象性是矛盾的,因此毫不犹豫地牺牲掉前者。然而包括我本人在内的很多人都对此表示怀疑,我们不认为直觉性与抽象性一定相互矛盾,特别是在数学教育中和数学教材中,帮助学生建立直觉,有助于它们理解那些抽象的概念,进而理解数学的本质。反之,如果一味注重形式上的严格性,学生就好像被迫进行钻火圈表演的小白鼠一样,变成枯燥的规则的奴隶。

    “枯燥的规则的奴隶”又何止是在数学教学中出现的呢?如果你在大学工科学习过,你会发现这些人简直遍地都是,拿我在的浙大为例,有的是学生对课程并不理解,单靠考前突击刷题就拿到90分以上的成绩。

    正是在这样的情形下,我决定尽我所能重新思考学到的每一个重要知识,并将其中一部分写成文章,一来有助于对思维的梳理,二来也是便于自己将来的回顾,倘若拙作还能对他人也有所帮助,从而使我给世界留下一些微不足道的影响,那真是幸甚了。

    PS:我在最后后附上三者简单的关系(好吧我承认第一次看这篇文章看到后面太懵了):

    原码就是第一位表示符号, 其余位表示值.

    正数的反码是其本身 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

    正数的补码就是其本身 负数的补码是反码的基础上+1

    展开全文
  • 最近在学习一下专栏里面的数学问题,提到二进制的东西的时候,想到了大多数人在学习的时候,死记硬背上反码是怎样,补码是怎样。 现在回头问下自己,反码有何存在意义?补码有何存在意义?为什么要有反码?为什么要...

    目录

    1、前言,自己发明javb语言

    2、模

    3、先思考,为什么不能直接用源码计算

    4、主角的由来

    5、反应肯定是???


     

    最近在学习一下专栏里面的数学问题,提到二进制的东西的时候,想到了大多数人在学习的时候,死记硬背上反码是怎样,补码是怎样。

    现在回头问下自己,反码有何存在意义?补码有何存在意义?为什么要有反码?为什么要有补码?

    1、前言,自己发明javb语言

    先拿java的int 数据类型是32位,有符号的以二进制补码表示的整数;符号位为第一位,
    最小值 ,第一位为1,其余为0,-2,147,483,648(-2^31) 
    最大值 ,第一位为0 ,其余为1,2,147,483,647(2^31-1),是的,int型手机号码都放不下。

    因为位数太长,所以以下说明的时候不太方便,假如我现在发明了了,jbvb语言,接下来整篇分析里面,

    我们把int数据类型设置为4位。有符号的以二进制补码表示的整数;符号位为第一位,
    最小值 ,第一位为1,其余为0,1000,(-2^3)     = -8
    最大值 ,第一位为0 ,其余为1,0111,  ( 2^3 - 1)= 7

    2、模

    取模的除数就是数据类型的上限减去下限的值,再加上 1,也就是 (2^(n-1)-1)-(-2^(n-1))+1=2x2^(n-1)-1+1=2^n-1+1。
    这个除数为什么不直接写成 2^n 呢,这是因为 2^n 已经是 n+1 位了,已经超出了 n 位所能表示的范围。
    其实就是上限到下限的距离。

    那这里的模是2^4 = 16 

    7 + 1 = 0111 + 0001 = 1000 = -8 ,上溢出,超越上限,也就是最大值+1后 会变成最小值。

    还剩15的差值,-8 + 8 能回到0位置, 0+7 能回到7的位置。也就是说 7 + 模后,重新回到原来的位置。

     

    就是余数和取模的概念,这东西周而复始,其实跟时钟类似。

    类似时钟机制,假如现在是6点,顺时针加12个小时,这样就回到了6点。

     

    3、先思考,为什么不能直接用源码计算

    计算机里没有减法,减一个数,相当于加一个数后得到想要的值,然后就在这条路上去探索了。
    1 + (-1) 直接用原码计算是有问题的,还有符号位,所以直接一加是个负数,那这就有问题了。
    所以科学家开始想解决办法了

     

    4、主角的由来

    由前面可知,数值加上模后会回到原来的位置。

    由此将i-j + 模的值等同于 i - j ,   i-j=(i-j)+(2^n-1+1)=i+(2^n-1-j+1)

    2^n-1-j ,结果如下图,

    这个东西刚好是-1,除符号位外的取反。称为反码

     

    2^n-1-j+1,补码,反码加1 

     

    所以-1最终的补码与1相加 ,得到正确的值

     

     

    5、反应肯定是???

    这里的计算算的刚好,这里我看其他人也有相同的迷惑。

    问题一:为什么i-j得加上取模的除数?
    其实这个换个思路理解就行了,i-j是一个值,这个值加上模,其实就还是会回到原来的位置。

    问题二:
    最迷糊的地方来了,2^n-1就是32位1,这个地方就又没有符号位这个说吗吗?

    作者的解答是:我们只考虑(n-1)位的1,不考虑第一位

    一开始其实我也是没太明白这里的解释。
    其实就是回去最原始的地方,我们设定为4位,符号位为第四位,最大值也就2^3-1,现在是2^4,如果是真的符号位 也只是第5位作为符号位。

    现在想必大家都理解了。如果强制加上符号位,那么和j的值是对应不上长度的。所以把第一位去除直接计算。

    这个公式刚好就这么巧解释了整个补码的由来。
     

     

     

     

    展开全文
  • 原码、反码补码关系

    千次阅读 2020-02-15 09:20:37
    在了解原码、反码和补码前需要先了解机器数真值。 一、机器数真值 1、机器数 一个数在计算机中的二进制表现形式称为这个数的机器数。在机器数中,一个数的最高位是符号位。例如:十进制中的 5 转为机器数就是 ...

    在了解原码、反码和补码前需要先了解机器数和真值。

    一、机器数和真值

    1、机器数

    一个数在计算机中的二进制表现形式称为这个数的机器数。在机器数中,一个数的最高位是符号位。例如:十进制中的 5 转为机器数就是 0000 0101,-5转为机器数就是 1000 0101。

    2、真值

    因为最高位是符号位,所以一个数的机器数并不能代表他的真值。例如1000 0101的最高位1代表负值,其真正的数值是-5,而不是133(1000 0101转化为十进制的值为133)。所以,将机器数对应的真正数值成为这个数的真值。

    二、原码、补码、反码的概念

    1、原码

    原码就是机器码。
    1的原码是0000 0001,-1的原码是1000 0001。
    因为最高位是符号位,所以他的取值范围是[1111 1111,01111 1111] ,即[-127,127]。

    2、反码

    正数的反码是其本身。
    负数的反码是其原码除符号位以外其余各位按位取反。-5的反码是1111 1010。

    3、补码

    正数的补码是其本身。
    负数的补码是其反码+1。例如-5的补码是1111 1011。

    可见对于负数而言,其反码和补码是无法直接看出来的,必须经过计算参能得出结果。

    三、为什么要使用原码、反码和补码

    根据上面的了解,我们知道了计算机可以使用三种编码方式表示一个数。
    对于正数而言,三种编码方式都是一样的,在这里也就不做过多的介绍了。
    对于负数,如[-5]的原码[1000 0101],反码[1111 1010],补码[1111 1011]是不一样的。既然原码是人脑可以直接识别并直接用于计算的,那为什么还要使用反码和补码呢?
    由于计算机运算时只能做加法。那么减法是如何运算的呢?
    例如:对于十进制2-1=1,计算机的计算方式为2+(-1)=1,如果使用原码进行计算,则为0000 0010+1000 0001=1000 0011,转化为十进制结果为-3,是错误的,这也是计算机不使用原码进行计算的原因。
    如果使用反码计算,则为0000 0010+1111 1110=1000 0000,原码为,转化为十进制为-127,结果是错误的。
    如果使用补码计算,则为0000 0001+1111 1111=1 0000 0000,将溢出部分去掉结果为0,是正确的。

    展开全文
  • 详解原码、反码补码存储与大小 原码: 如果机器字长为N个bit,那么一个数的原码就是N位二进制数,最高位 是符号位,1代表负数,0代表正数。 反码: 正数的反码就是原码,负数的反码就是符号位不变,其他取反。...
  • 一:为什么会有二进制原码反码补码 我们知道,一个数在计算机中使用二进制来表示的。以下都用一个字节来表示二进制的存储。例如:+1表示成二进制为00000001,-1表示成二进制为10000001.两个正数相加计算机来十分...

    二进制补码和反码和源码的关系

    一:为什么会有二进制原码反码补码

    我们知道,一个数在计算机中使用二进制来表示的。以下都用一个字节来表示二进制的存储。例如:+1表示成二进制为00000001,-1表示成二进制为10000001.两个正数相加计算机来十分方便,但是如果是一个数减去一个数会有正负之分,此时要比较出绝对值最大的那个数,然后加上符号位。这样子做也太麻烦了,会让计算机的硬件消耗更多的处理。

    如果把一个数减去一个看作是两个数相加,例如1+(-2),这样子计算机只要能处理加法就好了,就不需要比较两个数的绝对值大小的问题,所以反码就出现了。正数的反码就是本身,负数的反码是除符号位之外取反。例如:+1的反码是00000001,-1的反码是11111110。1+(-1)=00000001+11111110=10000000。用反码计算计算机是快速了很多,但是会存在+0和-0的问题。它们两者都是一个数,却用了两个二进制反码来表示它。很奇怪。

    所以就产生了二进制的补码。二进制的补码是在二进制反码的基础上加上1。正数的二进制补码就是二进制原码本身。所以+1的补码为00000001,-1的补码为11111111。+1+(-1)=00000001(补)+11111111(补)=00000000(补)=0(十进制)。

    同时,用二进制补码的方式来存储一个十进制的数还能多表示一个数。例如:-1+(-127)=10000001(原码)+1111111(源码)=11111111(补码)+10000001(补码)=10000000(补码)=-128(十进制)。显然,如果用源码来表示那么一个字节的存储的数值为-127-127,如果用反码来表示一个字节存储的数值为-128-127.所以这也就是为什么用源码和补码一个字节表示的数值的范围不同的原因。

    二:二进制源码反码补码的运算关系

    正数的源码反码补码相同。

    反码=源码除符号位外取反

    补码=反码+1

    展开全文
  • 原码、反码和补码三者之间的关系.pdf
  • 源码,反码补码间的关系 因为所有参与计算的数据都是二进制的补码,所以我们要得到计算过程就得先得到这些数据对应的补码。 正数的 源码,反码补码都是一样的。就比如24,把它用字节来表示: ...
  • 二进制数的反码和补码

    千次阅读 2019-01-16 22:12:54
    在大学的学习中,一开始自认为已经学会了反码补码,但在看到多种表述之后,...首先从最一般的意义上,分别说一下二进制的反码和补码: 1、反码 1’s complement 把所有的0变为1,所有的1变为0。 如: 10110010 B...
  • 原码、反码补码相互之间的关系

    千次阅读 2019-03-09 12:42:44
    原码、反码补码知识整理 在计算机中机器是识别不了正数(+)、负数(-)的,所以早期给计算机设定了0代表正数,-1代表负数,称为符号位,置于最前面 1.原码 正数转换为二进制位,二进制位就是这个正数的原码 负数取...
  • 原码,反码补码的深入理解与原理

    万次阅读 多人点赞 2019-07-03 10:37:43
    通过简述原码,反码和补码存在的作用,加深对补码的认识。力争让你对补码的概念不再局限于:负数的补码等于反码加一。 接触过计算机或电子信息相关课程的同学,应该都或多或少看过补码这哥仨。每次都是在课本的最前...
  • 关于反码和补码的一点思考

    千次阅读 2019-02-08 10:22:50
    原码, 反码, 补码 详解 带符号的二进制数字
  • 原码、反码和补码详解

    千次阅读 2019-02-09 19:36:05
    关于反码和原码,大家都是在郑重其事的讲解,其实,学过的人都知道,它们的重要性是 0 ! 做而论道把自己对于补码的认识写在下面,但愿对读者有些帮助。 加法器 计算机里面,只有加法器,没有减法器,所有的减法运算...
  • 8位二进制原码的表示范围:-127~+127 8位二进制反码的表示范围:-127~+127 8位二进制补码的表示范围:-128~+127 实际上,将负数用补码表示,实际上是实现...原码、反码和补码—— -128的补码为什么是10000000 ...
  • 二进制的原码,反码和补码 *(以下所有数采用的都是8位二进制(-128 ~ 127)) 1.原码: 最高位表示符号位(用0表示正数,1表示负数),其他位表示该数的二进制的绝对值。 例: +5 :0000 0101 -5 :1000 0101 2....
  • 0001+1001=1010 (1+(-1)=-2)懒得算原码、反码补码在下面详解里有表格 但是显然原码满足不了需要,于是人们发明了反码,我们正数不变把负数各位取反(符号位不变)这样相加必为1111即为-0。 0001+1110=1111...
  • 计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。 原码: 在数值前直接加一符号位的表示...
  • 负数的补码是原码的符号位不变,其余位按位取反,并在末尾加1(即在反码的基础上加1)。 n位数的数值范围: 原码 反码 补码 例如8位2进制数...
  • 原码, 反码, 补码 计算原理详解

    千次阅读 多人点赞 2019-04-28 21:27:41
    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家...
  • 一、为什么需要反码反码的作用就相当于数学中的负数。 对于小学生来说,会做的算术题是:5-3,但是不会做3-5。于是,我们上初中的时候,数学里就引进了一个新的概念:负数。引入负数之后,本来是减法的运算就...
  • 反码补码

    2019-03-20 12:18:04
    原码 *就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 *通过一个字节,也就是8...*正数的补码与其原码相同,负数的补码是在其反码的末位加1。 反码: 0 0000111 +7(反...
  • 原码、反码和补码 1).数据在内存中存储的时候都是以二进制的形式存储的. int num = 10; 原码、反码补码都是二进制.只不过是二进制的不同的表现形式. 数据是以补码的二进制存储的. 2). 1个int类型的变量...
  • 什么是原码、反码和补码及由来

    千次阅读 2020-03-03 00:16:24
    在计算机里是以二进制表示的,只有01,数字的正负没有多余符号表示的。那为了分出正负就发明了原码:如果是8位的计算机,取出8位中的第一位不参与数字值的表示,用来表示正负。如果第一位是0,那就规定这个数为...
  • 原码、反码和补码 计算机中数的表示,计算机中用补码来表示整数 机器数的概念 在计算机内部,所有信息都是用二进制数串的形式表示的。整数通常都有正负之分,计算机中的整数分为无符号的带符号的。无符号的...
  • 一、机器数真值 1. 机器数 一个数在计算机中的二进制表示,叫做这个数的机器数。在计算机中最高位为符号位。0代表正数,1代表负数。 +1 机器数(8位):0000 0001 -1 机器数(8位):1000 0001 补充 计算机存储...
  • 原码、反码补码和移码

    千次阅读 2018-11-13 10:44:08
    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 书中关于原码、反码补码和移码的定义如下(n是机器字长)...
  • 对于原码,反码和补码很懵逼的人群

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,984
精华内容 11,993
关键字:

反码和补码的关系