-128的补码是多少 详解
-128的补码可以这么来理解:补码是一种循环计数系统,类似于钟表,比方说实际时间为7点,时针错误的停在11点上,怎么调整呢?两种方式,一是逆时针转4,即11-4=7;二是顺时针转8,即11+8=11+(-4+12)=12(自动舍掉)+7=7。模就是循环计数系统中所表示的最大数。所以(-4)与(+8)对模12互为补数,同余数。
对于8位二进制数,模为256。随便举个例子(-6)和(250)对模256互为补数,同余数。也就是说-6的补码就是250的二进制形式,即1111
1010。
那我们就可以得出(-128)和(+128)对模256互为补数了,也就是-128的补码就是128的二进制形式1000
0000。
-128 在八位二进制下,并没有原码和反码,只有补码。
而且,在计算机中,也只有补码,并没有原码和反码。
使用补码的意义在于:【把减法转换为加法】。
从而能够简化计算机的硬件。
计算机的位数是固定的,这就为补码的应用,提供了条件。
------
比如,限定,只用两位十进制 0~99,周期就是 100。
那么,减一,就可以用 +99 代替:
24 - 1 = 23
24 + 99 = (1) 23
只是保留两位数,忽略进位,结果就是相同的。
那么,99,就称为-1 的【补数】。
负数的补数的计算公式:100 + 负数。
------
计算机使用二进制,通常是指定为八位。
即,可以使用 0000 0000~1111 1111。
(共有 256 种,用其中 128 个,代表负数。)
二进制转十进制,就是 0~255。周期是 256。
那么,减一,就可以用 +255 代替。
即:
-1 的补码是 1111 1111 (十进制 255)。
-2 的补码是 1111 1110 (十进制 254)。
-3 的补码是 1111 1101 (十进制 253)。
。。。依次减一,直到-128。。。
-128 的补码,1000 0000 ( = 128)。
------
求负数补码的公式:【256+该负数】。
正数:直接运算即可,不需要任何转换。
------
补码是有用的。
原码反码,则是毫无用处的。
所以,计算机中,并没有原码和反码。
况且,-128 也没有八位的原码和反码!
原码反码,都是什么,不必关心!
如果是求
13的原码反码和补码都是1101
的128原码反码和补码都是10000000
ps:
整数的原码,反码,补码,都是一样的,
负数的原码,反码,补码,不是一样的,
原码,反码,补码的关系是先将原码用二进制写出来,除了符号位不变外。其于各位取反,
反码加一后就是补码。