
二进制补码是什么意思?
二进制补码简介:
计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的补码了。
补码的设计目的:
⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.
⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。
小数和分数的补码:
1.十进制分数补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数,再按下面第三步的方法将求出小数的补码形式。
37/64=100101B/2^6=0.100101B
-51/128=110011B/2^7=0.0110011B
2.十进制小数的补码也应该先将其转换成二进制小数,再按下面第三步的方法将求出小数的补码形式。
0.375=0.011B
0.5625=0.1001B
3.将二进制小数对应的补码求出
[37/64]补码=[0.100101B]补码=0.1001010B
[-51/128]补码=[0.0110011B]补码=1.1001101B
[0.375]补码=[0.011B]补码=0.0110000B
[0.5625]补码=[0.1001B]补码=0.1001000B

2025-02-09 广告
计算机,只使用补码进行计算和保存数据。原码反码,都是不存在的。
所谓的补码,并不是“什么码”,而是自然而然就存在的数字。
补码,也不是二进制数所特有的。
你看十进制吧,两位数就是:0 ~ 99。
它们,都没有正负号,它们都是正数。
那么有:27 + 99 = (一百) 26
你也可以:27- 1 = 26
如果你丢了进位,仍旧保持两位数,这两种算法,功能就是相同的。
就是说,当你舍弃了进位(也就是减去了 100):
● 那么,+99 就是-1、+98 就是-2、+97 就是-3 。。。
● 同时,使用加法,也就可以实现减法运算。
在此时,计算机硬件就可以简化,只用一个加法器,便可走遍天下!
另外,本来明明是“无符号数”,现在竟然变成了“有符号数”!
由此可知,所谓的“符号位”就是荒诞无稽的,没有任何依据。
----------------
在一个字节中,有八位二进制数:0000 0000 ~ 1111 1111 (=255)。
如果出现进位,就是:2^8 = 256。
当你舍弃了进位,+255 就是-1、+254 就是-2 。。。
这些正数,就是计算机大佬“发明的补码”了。
关系式:补码(代表负数的正数) = 2^n + 该负数。
由此可知,所谓的补码,来自于“舍弃进位”。
补码,和“原码反码”一丁点关系都没有!
补码,它就是实实在在的数字,并非是“什么编码”!
所谓的“符号位、取反加一”,只是计算机大佬编造的【障眼法】而已。 并没有任何的理论依据。
例如:-31 的八位补码是什么?
题解:256-31 = 225 = 1110 0001 (二进制补码)。
求补码,根本就不需要“原码反码取反加一符号位不变”这些骚操作。
而且,在计算机系统中,【数值,一律采用补码表示和存储】。
在计算机里面,根本就不使用、也不保存原码和反码。
没有原码,拿什么取反? 没有反码,拿什么加一?
因此,所谓的“取反加一符号位不变”,计算机也是无法实现的。