为什么-1在二进制码中只表示正数而不表示负数?
在二进制码中,采用最高位是符号位的方法来区分正负数,正数的符号位为0、负数的符号位为1。剩下的就是这个数的绝对值部分。通过将负数转为二进制原码,再求其原码的反码,最后求得的补码即负数的二进制表示结果。
比如整数-1。先取1的原码:00000000 00000000 00000000 00000001,得反码: 11111111 11111111 11111111 11111110,最后得补码: 11111111 11111111 11111111 11111111,即-1在计算机里用二进制表示结果。
扩展资料:
在计算机中,除了十进制是有符号的外,其它如二进制、八进制、16进制都是无符号的。补码中正数与原码正数表示一样。补码中负数是采用2的补数来表示的,即把负数先加上2.以便将正数与负数的相加转化为正数与正数相加,从而克服原码表示法做加减法的困难。
由于负数的补码是2一|x|,故求负数的补码时,实际上要做一次减法,这是不希望的。可以发现,只要将原码正数的每位取反码,再在所得数的末位加1,则正好得到负数的补码,这简称为对尾数的“取反加1”。
为什么-1 在二进制码中只表示正数而不表示负数?
不仅是-1。
任何负数,在计算机中,的的确确,都是用正数表示的。
-----------------------
负数,在计算机中,是用补码表示的。
补码,就是一个“代替负数”的正数。
使用了补码之后,计算机中,就没有负数了。
而且,也就没有了减法运算。
那么,用一个加法器,就能横行天下了。
-----------------------
正数,怎么就能代替负数呢?
用十进制来说明,比较容易理解。
限定,只使用 2 位数来计数,循环周期就是 10^2 = 100。
可以有: 25 - 1 = 24
25 + 99 = (一百) 24
如果你舍弃进位,仅保留 2 位,+99 就能代替-1 !
而且,加法,就代替了减法运算 !
同样,+98 也可以代替-2。
。。。
限定了位数,舍弃进位,正数就能代替负数。
这正数,可称为“负数的补数”。
替换公式:正数 = 负数 + 周期。
-----------------------
计算机用二进制,就改称为:补码。
转换公式:补码 = 负数 + 2^n, n 是补码的位数。
那么,-1 的 8 位补码,就是:
-1 + 2^8 = 255 = 1111 1111 (二进制)
255 = 1111 1111,的的确确,这就是一个正数。
用它计算,如果你舍弃进位,它就当做-1。
如果你保留进位,它就是 255。