计算机中,正数为何用“0”表示,负数为何用“1”表示?

如题所述

第1个回答  2022-09-29

二进制码中,采用最高位是符号位的方法来区分正负数,正数的符号位为0、负数的符号位为1。剩下的就是这个数的绝对值部分。通过将负数转为二进制原码,再求其原码的反码,最后求得的补码即负数的二进制表示结果。

比如整数-1。先取1的原码:00000000 00000000 00000000 00000001,得反码: 11111111 11111111 11111111 11111110,最后得补码: 11111111 11111111 11111111 11111111,即-1在计算机里用二进制表示结果。

扩展资料:

在计算机中,除了十进制是有符号的外,其它如二进制、八进制、16进制都是无符号的。补码中正数与原码正数表示一样。补码中负数是采用2的补数来表示的,即把负数先加上2.以便将正数与负数的相加转化为正数与正数相加,从而克服原码表示法做加减法的困难。

由于负数的补码是2一|x|,故求负数的补码时,实际上要做一次减法,这是不希望的。可以发现,只要将原码正数的每位取反码,再在所得数的末位加1,则正好得到负数的补码,这简称为对尾数的“取反加1”。

第2个回答  2023-03-13

在计算机系统中,数值,一律采用补码表示和存储。

在计算机系统中,负数,以其“正值的补码形式”表示。

这就是说:负数,是用一个正数(补码)来表示的。

采用了补码(正数)表示负数,在计算机中,就没有负数了。

同时,也就消除了减法运算。

因此,计算机只需配置一个加法器,便可走遍天下。

----------------------

正数(补码),怎么能表示负数呢?

这个规律,源于“计数系统的周期性”。

两位十进制数:0~99,其计数周期就是 10^2=100。

你看吧: 24 - 1 = 23

     24 + 99 = (一百) 23

如果你只保留两位数,+99 就可代替-1,加法代替减法。

计算公式: 正数 = 负数 + 周期。

在计算机中,也可使用这个公式。

----------------------

一个字节是 8 位 2 进制数,计数周期就是 2^8 = 256。

代替-1 的是:255 = 1111 1111 (二进制)。

代替-2 的是:254 = 1111 1110 (二进制)。

。。。

代替-128 是:128 = 1000 0000 (二进制)。

这些代替负数的正数,就称为“补码”。

而正数,不许变换,必须直接参加运算。

所以,正数,并没有补码。

----------------------

按照上述规则算出的代码,自然就有“正数最高位是0、负数是1”。

最高位是 0 还是 1,这是按照规则,算出来的!

并非是某个大佬特意规定的。

相似回答