-8的补码是多少?

书上-8补码是1000但我就看不明白了。按定义来说当真值为负,补码便是将数值位按位取反,最后加1,符号位把“-”变“1”。我把-8化成真值-1000B,最后算得补码为:11000B这是咋会是呢?请各位说下!

-8的补码是:11111000,因为-8超出了4位二进制所能表达的范围,所以必须要用8位二进制表示。

负整数的补码计算是将其原码除符号位外的所有位取反后加1,-8补码的计算过程是:-8对应正数8(00001000)→所有位取反(11110111)→加1(11111000)。

扩展资料

计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

参考资料来源:百度百科-补码

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-09
要算-8的补码:
(1)如果用4位二进制数表示的话,原码1000(“1”表示“-”号,“000”可以看成数字位“111”+1的结果)——反码1111——补码1000。
(2)如果用8位二进制数表示的话,原码1000 1000——反码1111 0111
——补码1111 1000。
以上为思考过程,但是要注意:4位二进制数表示的范围是:原码-7到7(其中0有两种表示),反码也是-7到7(其中0有两种表示),而补码是-8到7(反码中的负数移1位,空出一个位置给-8)。即是说,在4位二进制表示中,-8只有补码,没有原码和反码。同理,在5位二进制表示中,-16只有补码10000,没有原码和反码。在3位二进制表示中,-4只有补码100,没有原码和补码。在2位二进制中,-2只有补码10,-1补码为11,0的补码为00,1的补码为01。
更一般地讲,补码的引入是为了表示符号数。比如4位二进制补码,可以表示的数的范围是-8到7,其中0000到0111依次对应着0到7,1000到1111依次对应着-8到-1,前面的符号位0和1可以看成是对两个容器的编号,容器“0”放非负数,容器“1”放负数,而且补码数值增加对应的数本身大小也增加(这一点至关重要)。正因为补码加1,对应的数字也在循环区间(如-8到7)中加1,从而使得补码加减法和真实数字可以直接对应。
再更一般讲:原码,反码,补码,本质上都是对同一个01字符串的不同理解方式。我们学的这三个概念,也就是01字符串的三种对应关系(就如同3种映射,3个函数)。除了这三种码,我们也可以根据需要,去定义自己的码。本回答被网友采纳
第2个回答  推荐于2017-09-04
求给定数值的补码分以下两种情况:
1.正整数的补码是其二进制表示,与原码相同。

【例1】+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)
2.负数求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1。

同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。

【例2】求-8的补码。

-8对应正数8(00001000)→所有位取反(11110111)→加1(11111000)

所以-8的补码是11110000。
第3个回答  推荐于2017-09-26
用8位2进制来表示一个数的话,-8的源码为1000 1000,反码为1111 0111,补码为1111 1000 根据扩展是符号位向高位扩展的原理 前面的1111是表示负号位的扩展,所以可以直接等于1000吧 一般都是8位扩展到16位 你这是书上简写了吧。。。 最好做题时还是写1111 1000本回答被提问者采纳
第4个回答  2019-11-13
“书上-8补码是 1000,...”,
楼主看的是什么书?
作者,写错了。

-8的补码是多少?
-8的补码是:11111000,因为-8超出了4位二进制所能表达的范围,所以必须要用8位二进制表示。负整数的补码计算是将其原码除符号位外的所有位取反后加1,-8补码的计算过程是:-8对应正数8(00001000)→所有位取反(11110111)→加1(11111000)。

c语言中,-8的补码是啥?
-8=1001000 取反=1110111 加一=1111000 符号位不变

如何得到-8的补码?
-8用原码表示为 1000 6组0000 1000 补码为原码除符号位取反加1即 1111 6组1111 0111 + 1= 1111 6组1111 1000 7的原码:0000 6组0000 0111 把7的原码0变1 1变0后:1111 6组1111 1000

c语言中,-8的补码是多少?151和-151的原码分别是多少?
-8 原码 1000 1000 反码 1111 0111 补码 1111 1000 151 ?原码??原码就是+1001 0111 -151 原码 -1001 0111

C语言中unsignedintc=-8输出等于多少,为什么?
-8在内存中的补码表示为fffffff8(16进制),将它作为无符号数输出是:4294967288

为什么4位补码1000表示-8?
11111000。所以你说-8的补码不是11000欠准确!对于正数,原码、反码、补码的二进制形式规定是一样的,所以无论有多少位,形式都不变化。补码概念和规则的引入,是解决负数在计算机中的表示和运算问题的。通俗地讲就是引入补码概念和规则后,计算机中就连同符号位只简单地作无符号加法运算,而依据某些规则...

如果-8是一个补码,那么补码是什么?
补码是在计算意义上存在的,是为了以加法代替减法。4位有符号二进制中模为8:-8的同余数就是0,则-8的补码为-000即1000,其来源为x-8要转换成x+0的加法计算意义。这样也符合补码的计算。例如-1+-7=-8= -001(原码)+-111(原码)=1111(补码)+1001(补码)=11000=1000(补码)

计算机中-8的补码是什么
设字长8位 [-8]原 =10001000b [-8]反 =11110111b [-8]补 =11111000b ( b是二进制数后缀 )

为什么-8对应的原码、补码是1000,反码是1111?
3. 补码:反码加1。-8的补码也是1000。之所以规定“-0”为-8,是为了在有符号整数的二进制表示中,正负数数量对半分,同时确保加法运算正确。例如:-8+1=-7,+7+(-8)=-1。补码的存在是为了简化计算机中的加减法运算。通过补码,原本的减法运算可以转化为加法运算,从而节省电路设计和计算资源。对...

-8的原码为10001000 它的反码和补码的分别是什么?
负数的补码,原码,反码都是用1放在符号位,后面7位有变化:-8的原码:1000 1000;-8的反码:1111 0111;-8的补码:1111 1000

相似回答