-8的补码为什么是1000,而不是11000,+8的补码不应该是1000吗,-5的补码

文章 3年前 (2021) admin
0

Q1:-8的补码为什么是1000,而不是11000,+8的补码不应该是1000吗?

这里首先要明确的是数据用几位二进制表示! 如果用4位表示,-8的补码就是1000,如果用5位表示,那-8的补码就是11000……用8位表示-8的补码就是11111000了。现在的计算机,int型多是32位二进制了,那-8的补码就是二进制11111111 11111111 11111111 11111000。所以你说-8的补码不是11000欠准确! 对于正数,原码、反码、补码的二进制形式规定是一样的,所以无论有多少位,形式都不变化。 补码概念和规则的引入,是解决负数在计算机中的表示和运算问题的。通俗地讲就是引入补码概念和规则后,计算机中就连同符号位只简单地作无符号加法运算,而依据某些规则来判断结果的正确性,就用不着再关心谁是正数谁是负数、是在做加法还是在做减法了,这也简化了计算机硬件的设计……而规定正数的原码、反码、补码一样,则是为理论上的完善,这样我们就认为计算机中的整数全是补码了……这完全是个人理解,仅供参考。

Q2:-8的补码为什么是1000,而不是11000。

5位是11000

Q3:JAVA中的补码:-8 的补码为什么是 1000???它不是8了吗????为什么是这样的?

如果用5位二进制表示-8的原码为:11000-8的反码为:00111 ,所以-8的补码为:01000

Q4:8的补码为啥是00001000B?

正数的补数是它自己。

Q5:为什么-8的补码用四位二进制人为规定表示为1000?懂得告诉我。。不懂就

要用二进制补码的形式表示-8,计算-8的过程至少需要4位-8用4位二进制数表示:8D=1000B,1000B求反=0111B,0111B 1=1000B-8用8位二进制数表示:8D=00001000B,0001000B求反=1111。

Q6:-8的原码为10001000 它的反码和补码的分别是什么?

-8的补码是:11110111,负补码是除了符号是以外,每一位都反相。-8的补码是:11111000,负补码是补码加1。

相关文章