二进制的补码形式是(二进制的补码形式是多少)
二进制中的反码、补码、原码是什么?
在计算机系统中,数值,一律采用补码表示和存储。
也就是说,在计算机中,只有补码,并没有原码和反码。
补码,实际上,也就是一个“代替负数”的正数。
所以,使用了补码之后,计算机中,就没有负数了。
而且,在计算机中,也就没有减法运算了。
因此,计算机只需有一个加法器,就可以打遍天下。
补码的功能之一,就是可以简化硬件!
原码和反码,都没有这种功能。
所以,计算机,根本就不用它们!
它们是干什么的呢?
就是用来唬人的。
是为了让这些计算机老师,混碗稀粥喝。
------------------------
补码(也就是正数),怎么就能代替负数呢?
其实,很简单。
你看钟表的时针,倒拨 3 小时、正拨 9 小时,效果相同吧?
你看三角函数,-π/2 和 +3π/2,两者的函数值,相同吧?
再看 2 位 10 进数,0~99,计数周期是 10^2。
可以看到:
25 - 1 = 24
25 + 99 = (一百)? 24
你只要忽略进位(10^2),+99 和-1 就是等效的。
以上这些,有如下规律:
正数 = 负数 + 周期。
这个正数,就是“负数的补数”,它就可以代替负数,进行运算。
在三角函数中,负角度,和正角度,是怎么变换的呢?
也是用这样的公式: 正角度 = 负角度 + 周期(2π)。
----------------------
计算机用二进制,补数,就称为:补码。
8 位 2 进制数,它们可以构成 256 组代码。
所以,计数周期就是:2^8 = 256。
求补码的公式是: 补码 = 负数 + 周期(2^n)。
-1 的补码就是:-1 + 256 = 255
= 1111 1111 (二进制)。
-2 的补码就是:254 = 1111 1110。
。。。
-128 的补码就是:128 = 1000 0000。
以上就是 256 组代码中的 128 个负数补码。
正数,必须直接参加运算,不许做任何变换。
正数本身,已经就是正数,所以并不存在什么“正数的补码”。
-------------------------
举例说明,如: 5 - 7 = -2。
用八位补码计算的过程如下:
5 = 0000 0101
-7的补码= 1111 1001
--相加-------------
得: (1)? 1111 1110 = -2 的补码
舍弃进位,只保留八位,这就用加法,实现了 5-7。
----------------------
计算机,只用补码,因为补码运算符合数学的规律。
而原码反码,都是人为虚构出来的。
即使把它们说出天花来,它们也是不存在的。
求反加一、符号位不变。。。是怎么回事?
老外数学不好,才会想出这些个烂办法。
二进制 补码
沿着由原码到补码的路子,-128 是很难办的。
因为在八位码长下,原码和反码的范围,都只有-127~+127。
就是说:-128 并没有原码和反码。
那么“求反加一”就没有用武之地。
同样,由-128的补码求出原码,也是不可能的。
-------------------------
那么,-128 的补码,是怎么来的?
求补码,有正经的公式:
当 X = 0,[ X ]补 = X;
如 X 0,? ?[ X ]补 = X + 2^n,n 是位数。
因此:[-128]补 = -128 + 2^8
? = 128
? = 1000 0000 (二进制)
求二进制补码形式
72用二进制表示就是
0100
1000,那么-72的原码就是1100
1000,再求反码,即
1011
0111,反码加1就是补码,即
1011
1000.
同理,-76原码
1100
1100,反码
1011
0011,补码
1011
0100
在此说明一下,负数的原码就是最高位为1,正数最高位是为0。反码就是最高位不变,其他位进行求反。补码等于反码加上1。