为什么二进制数中0-1=1
综述:
在二进制数中,0-1=1的原因是0-1不够减,向高位借了个1,二进制从高位借1则以1当2(类似于十进制数中从高位借1则以一当十),所以出现2-1=1的结果,就像是十进制数中的4-9=5(假设从高位借了个1,到本位当10用).如果根本就不存在高位的话,那么0-1=-1,就像是十进制数4-9=-5。
但是我们讨论二进制减法时,往往不止是考虑1个二进制位,而是由一系列二进制位构成的二进制数,所以在本位的减法中,其规则就是0-1=1。
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用1来表示“开”,0来表示“关”。
如果根本就不存在高位的话,那么0-1=-1,就像是十进制数4-9=-5。
但是我们讨论二进制减法时,往往不止是考虑1个二进制位,而是由一系列二进制位构成的二进制数,所以在本位的减法中,其规则就是0-1=1。
这不是二进制的事! 这只是计算机闹得怪!
按照二进制的运算规则,这式子的结果,应当是-1。
但是在计算机中,做这个运算时,结果就是 1。
----------------------
因为,在计算机中相减,如果不够减,是可以从左边借位的。
即使,0 的左边,什么也没有,它也可以借!
那么,借一当二,那么,0-1 的差,必然就是 1 了。
呵呵,这结果,千万别让你的小学老师看到啊!
----------------------
0-1,在这里,被减数,仅仅写了一个 0。
而在计算机中,计算机的字长是多少,就有多少个 0。
在八位机中,这就是八个零:0000 0000。
那么,0-1,显然不够减,那就逐位的向左边借、借、借 ...
最终的八位结果,就是:1111 1111。
-1,在计算机中的补码,就是这么算出来的。