-128的八位原码、反码、补码是多少?
数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制;
在八位二进制下,-128不能用原码或反码表示,反码只能表示0到127,-0到-127;
用补码表示为:10000000
补码的计算有两种方法:
1.一个数取代数的负号运算,相当于先取反再加1,10000000先看成是负数,我们要知道它的绝对值是多少,就取反加1,可结果还是10000000
这时不能看成负数了,最高位是数值位,因此是128,所以原来是-128。
2.127是01111111,01111111+10000000=11111111,127+x=-1,=>x=-128。
在八位整数里原码的取值范围为-127到+127,反码也是;在八位二进制中就把-0当作最小数-128用,也就是10000000
-0的原码:10000000
-0的反码:11111111
-128的补码:10000000
补码的设计目的是:
使符号位能与有效值部分一起参加运算,从而简化运算规则;
使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 。
负数的补码就把他正数的原码取反再加1就可以了,正数的原码反码补码都是一样的。
如果码长是 8 位:
-128 没有原码和反码。
-128 的补码是 1000 0000。
取反加一,在这里就不能用了。
取反加一,本身,也没有理论依据,就不必琢磨了。
-128的八位原码、反码、补码是多少?
------------------
码长八位时,-128 并没有原码和反码。
但是,-128 有八位的补码,是:1000 0000。
求补码,最简单且直观的方法是:0+X。
0 和 X,都是用二进制数来表示。
那么,-1 的补码,怎么求?
你就用二进制算吧,码长八位时,就是:
0+X = 0-1
= 0000 0000-0000 0001 = (借位 1) 1111 1111。
保留八位,就是:[-1 ]补码=1111 1111。
-128 的补码,怎么求?
码长八位时,就是:
0+X = 0-128
= 0000 0000-1000 0000 = (借位 1) 1000 0000。
保留八位,就是:[-128 ]补码=1000 0000。
--------------
补码,实际上,就是一个【代表负数】的正数。
补码,与原码反码取反加一,没有任何关系。
补码,不仅仅是在二进制中才有,任意的进制,都有“补码”的存在。
你看十进制数,两位,就是:0 ~ 99。
随便算一个:27 + 99 = (一百) 26
也可以这样:27 - 1 = 26
当你忽略进位,依旧保持两位,这两种算法的功能,就是完全相同的。
就是说,舍弃了进位:
正数,就能当负数使用,加法,也就实现了减法运算。
在计算机中舍弃进位:
就用不着减法器了,有一个加法器,就能走遍天下!
那么,在两位十进制中,0-1 = (借位 1)99。
同理,在八位二进制中,0-1 = (借位 1)1111 1111。
因此,99、1111 1111,就都是-1 的补码!
-------------------
补码,不是由计算机专家设计出来的。
这些专家,只不过就是忽略了进位而已。
由此,正数,就代替了负数。
补码,就是这么出来的。