当前位置:首页 > 开发语言 > 正文

二进制的减法采用补码运算,二进制的减法怎么计算

二进制的减法采用补码运算,二进制的减法怎么计算

大家好,今天小编来为大家解答二进制的减法采用补码运算这个问题,二进制的减法怎么计算很多人还不知道,现在让我们一起来看看吧!二进制的减法运算二进制数的减法运算,从高位借1...

大家好,今天小编来为大家解答二进制的减法采用补码运算这个问题,二进制的减法怎么计算很多人还不知道,现在让我们一起来看看吧!

二进制的减法运算

二进制数的减法运算,从高位借1过来,则当2。例如:1110-1001,个位不够减,从高位借1过来当2,减去1剩1得0101。例如:1100-1001得0011(计算机内,减法用加补码的方法用加法器运算。不同于手算。)

二进制之间的运算一定要用补码吗

因为补码表示法中0的表示是唯一的,而原码和反码表示时有+0和-0的区别,若用原码或反码进行计算,需要对结果进行修正,补码则不需要。两个数补码的和等于和的补码,两个数差的补码等于被减数补码与减数相反数补码的和。利用补码运算可以将减法转化成加法计算。这样在运算器实现时可以用加法器通过简单变换即可实现减法运算!

为什么计算机中带符号数采用补码表示

丢开教科书式的概念,想想为什么要有补码这个东西,为什么符号位会产生。定义:

原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。

机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。

机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。

如果是为了考试,死记即可。但我总想搞清楚为什么计算机里面的数要这样子表达?意义何在?-128的补码为什么是10000000?为什么补码有这么奇怪的运算规则?计算机算减法的时候都需要从源码到补码的计算吗?

思路

计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行。

用补数代替原数,可把减法转变为加法。出现的进位就是模,此时的进位,就应该忽略不计。

二进制下,有多少位数参加运算,模就是在1的后面加上多少个0。

补码就是按照这个要求来定义的:正数不变,负数即用模减去绝对值。

补充解释一下“模”的概念,可以参照离散数学里面的环:考虑时钟上时间的计算,假设现在时针指向数字3,若问“6小时前时针指向的数字是几”,则可以:1.将时针逆时针拨动6格。2.将时针顺时针拨动12-6=6格。两者的结果是一样的。这里称12为“模”。故有3时-6个小时=3时+(12-6个小时),这里可以看到将减法转换成加法的过程,即“加上模减去绝对值的差”。所以,假设模是10,有效位数为1,当我们计算9-7的时候:9-7=>9+(10-7)=12,去掉最高的位后,得到2,这是正确的结果。

作者的意思是说,计算机里面所有数都以补码形式保存,加减运算都是补码之间的加法运算。然后作者提出了一个我之前没听过的观点:

补数和补码的定义式里面,根本就没有什么符号位。这最高位的1、0是自然出现的,并不是由人来规定的。

的确,符号位在补码运算里面是“模”,本身并不带符号的意义。因为计算机将加法转换成加上一个“负数”,而负数又以补码的形式表现。补码比源码多一位,从这多出来的一位可以推断出原来数字的正负号,所以成为了符号位。也可以这样认为,留出一位(不全部占满)的原因是要用“模”来表示正负数。

也就是说,不是特意留出一个符号位,用1和0来表示正负号。而是补码运算可以用最高位来表示正负,所以符号位诞生了。

那么为什么-128的补码是10000000?可以这样理解。-128是一个负数,所以它的补码是它的“模”减去它的绝对值,即:

那么为什么负数补码等于源码的反码加一呢?可以这样推导:

由此我们得知,在计算机里面所有的数字都以补码形式存储。127存成01111111,-127存成11111111,算减法就变成算加法了,尽管你看到的是“-”号。

二进制补码运算结果是二进制吗

二进制补码运算结果是二进制。

如4的二进制0100,7的二进制为0111,-7的补码为1001,3的二进制0011,-3的补码为1101,4-7=01001001=1101,原理则是计算机中的负数的表示方式是最好位是符号位,减法运算其实就是加法的运算,即416-7的二进制运算

加减法计算为什么使用补码,补码到底是怎

补码的出现是为了满足二进制负数数据以及减法运算。

因为加法运算相对电子计算机更加简洁,所以我们可以将减法运算通过补码转换成加法运算,以实现简化电路。

补码定义为(N)补=R^n-N,其中R为数值,n为位数。我们以十进制为例,想要计算84-36,那么只需要计算84+(46)补-10^2=84+64-100=48。以此在计算中发到负数变正数,减法变加法的目的。

计算机二进制减法的运算过程

二进制的加法按二进制的加法规则进行(对齐各位进行,相当于我们做竖式的加法):

0+0=0

0+1=1

1+0=1

1+1=10

二进制的减法运算可按照加法运算的逆运算进行:

10-1=1(借位)

1-1=0

1-0=1

0-0=0

实际上在计算机内部做减法时是用加法做的(-123就是+(-123))。这个具体细节就不容易说清楚了。需要学习二进制补码的知识和计算机组成原理才行。

文章分享结束,二进制的减法采用补码运算和二进制的减法怎么计算的答案你都知道了吗?欢迎再次光临本站哦!

最新文章