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

作者&投稿:城废 (若有异议请与网页底部的电邮联系)
0的原码、反码、补码是什么?~

计算机中的存储系统都是用2进制储存的,对我们输入的每一个信息它都会自动转变成二进制的形式,而二进制在存储的时候就会用到原码,反码和补码 例如:输入25 原码就是:0000000000011001 反码: 1111111111100110 补码: 1111111111100111 ~ 数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚."(摘自>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题. 数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为 (-127~-0 +0~127)共256个. 有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits ( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 显然不正确. 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算: ( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10 (00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有问题. ( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正确 问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大). 于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个. 注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下: ( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)补 + (11111111)补 = (00000000)补 = ( 0 ) 正确 ( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 补+ (11111110) 补= (11111111)补 = ( -1 ) 正确 所以补码的设计目的是: ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则. ⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码

求采纳

先不看负号(正用0表示,负用1表示,均加在数的最左端),8化成二进制是1000,若计算机的字长为8,明显位数不够,则在1000左端加0,加满八位(注:包括符号码在内)

原码是00001000(注:负数的原码就是其绝对值的二进制,而负数的二进制数用其补码表示)
反码是11110111
补码是11111000(注:补码是从右数起第一个数字1后按照写反码的方式写)

负数的补码,原码,反码都是用1放在符号位,后面7位有变化:
-8的原码:1000 1000;
-8的反码:1111 0111;
-8的补码:1111 1000

-8的补码为:11110111,负数反码为除符号为外,每一位区反。
-8的补码为:11111000,负数补码为反码加一。

-8的原码是 10001000
反码是 11110111 (除符合位外,逐位取反)
补码是 11111000 (反码加1)


负数的补码怎么求
1、负数在计算机中以补码的形式存储,正数在计算机中以原码的形式存储。负数如何求补码?分为如下步骤:1、首先求出负数的原码,如-8的原码为 1000 1000,2、通过原码求出它的反码,负数的反码就是 除符号为以外,其余的全部求反,如-8 反码为 1111 0111。2、负数的补码 +1,就是它的补码,如 -...

+8的补码,原码,反码各为多少?
+8的补码,原码,反码,都是 0000 1000。负数的补码,原码,反码都是用1放在符号位,后面7位有变化:-8的原码:1000 1000;-8的反码:1111 0111;-8的补码:1111 1000。计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,...

十进制数-8的原码,反码,补码分别是多少?以及为什么?
先不看负号(正用0表示,负用1表示,均加在数的最左端),8化成二进制是1000,若计算机的字长为8,明显位数不够,则在1000左端加0,加满八位(注:包括符号码在内)原码是00001000(注:负数的原码就是其绝对值的二进制,而负数的二进制数用其补码表示)反码是11110111 补码是11111000(注:补码是...

-8怎么转换二进制
1、先将八进制转化为十进制。2、把八进制按照三个一组转换为十进制。3、再将十进制转化为二进制。4、十进制除二取余,得到二进制。过程如下;原码 0000,0000,0000,1000 反码 1111,1111,1111,0111 补码 1111,1111,1111,1000 补码就是-8的二进制,如果用4字节表示整数的话,就是在前面加8*2个...

C语言题,求指点!!
什么是补码你可以去网上了解下计算机数的真值、原码、补码相关内容。正整数原码等于补码,负整数的补码等于原码除符号位外所有位数取反,然后加1 那么题目中-8的原码=1000 0000 0000 1000 除符号位外取反=1111 1111 1111 0111 然后再加1 = 1111 1111 1111 1000 所以选A ...

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

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

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

我们用二进制表示一个数,比如8是1000,也可以表示成00001000,-8则是...
你指的有符号的二进制数是机器外的数,符号用+和-表示,而数值在计算机内部存储都采用二进制数。原码和补码都是机器数,符号也要数字化,因此用0表示正,1表示负。计算机内部的运算最后都是转换为补码加法去做的。

在带符号位的四位二进制代码(原码)中,1000代表什么?
带符号位的四位二进制代码(原码)中,只有16种代码。可以代表的数字范围是:-7~-0,+0~+7。不包括-8。如果说是-8,那就是 补码。

三水区18229124917: 怎么用二进制求负数的补码? -
杜翟开喉: 负数的补码的方法如下: 1、负数在计算机中以补码的形式存储,正数在计算机中以原码的形式存储.负数如何求补码?分为如下步骤:1、首先求出负数的原码,如-8的原码为 1000 1000,2、通过原码求出它的反码,负数的反码就是 除符号为...

三水区18229124917: +8和 - 8的原码,补码和反码分别是什么?速度,在线等!!! -
杜翟开喉: +8 原码:00001000 补码:00001000 反码:00001000-8 原码:10001000 补码:11111000 反码:11110111

三水区18229124917: 关于补码和原码的转换问题 - 8的补码是11110111,除了第一位之外全部变了就是10001000加上1就是10001001就是 - 7了啊,小弟昨天才开始接触这方面, -
杜翟开喉:[答案] 你搞错了…… -8的原码是10001000,数据位取反后是11110111,末尾加1是11111000,这才是8位二进制表示的-8的补码,而非11110111!11110111是-9的补码……

三水区18229124917: - 8的4位二进制形式什么 -
杜翟开喉: 带符号数通常是用补码的形式表示的,那1111是-1,并不是-7,-7是1001,-8是1000. 你说的1111表示-7,是原码的表示方式,这样有0000是+0,而1000是-0,有两个0,不便于计算,不采用.因此,在计算机内部,带符号数是用补码的形式表示的.补码只有一个0了,而且正负数相加为0,可是用原码表示的数,正负数相加并不是0,如你说的,7是0111,-7是1111,这两个四位的二进制数相加你看是0吗?所以,只是讲原码的表示方法,实际却不使用.

三水区18229124917: - 8的补码是多少 为什么 - 1的反码是 - 126 -
杜翟开喉: 楼主你好,我们先来看看反码的概念,简单的说,正数的反码与源码一致,负数的反码符号位不变,其他位按位取反.0可以理解为正,也可以理解为负,所以有两种表示.你说-1的反码是-126,这是用8位2进制来表示一个数.第一位表示符号位,-1换算成2进制为10000001,根据反码的规则,它的反码为11111110,换算成10进制即为-126.用8位2进制来表示一个数的话,-8的源码为10001000,反码为11110111,换算成10进制为-119.希望可以帮到你!

三水区18229124917: 关于补码和原码的转换问题 -
杜翟开喉: 你搞错了……-8的原码是10001000,数据位取反后是11110111,末尾加1是11111000,这才是8位二进制表示的-8的补码,而非11110111!11110111是-9的补码……

三水区18229124917: 负8的移码是多少 -
杜翟开喉: 移码就是在补码基础上加上2的n次幂,通俗地讲,就是把符号位取反; 移码是无符号的,都是正自然数 负数:补码等于原数取反再加一 -8 的二进制是10001000 所以补码是01110111+1=01111000 转换成10进制就是120 所以-8的补码是120如果帮到你,请记得采纳,O(∩_∩)O谢谢

三水区18229124917: 以八位整数, - 0.1011的原码,反码,补码 -
杜翟开喉: 看了两位网友的回答,发现概念都很模糊,故此再次强调:正数的补码,原码,反码都是相同的.----------以八位二进制码为例,有:+8的补码,原码,反码,都是00001000.负数的补码,原码,反码都是用1放在符号位,后面7位有变化:-8的原码:10001000;-8的反码:11110111;-8的补码:11111000.

三水区18229124917: 汇编 DW- 8的高位为什么是FF -
杜翟开喉: 在汇编中,有符号数是由补码的形式表示的. 正数的补码是它本身,负数的补码是将其正数按位取反,然后加1. 比如-8,它的正数是8,用32位二进制表示是0000000000001000B 按位取反,则是1111111111110111B 加1,则是1111111111111000B 16进制表示,则是0FFF8H 由此可见,高位是FF

三水区18229124917: 2进制补码 负数的值是最高位不变 -
杜翟开喉: 负数的反码符号位与原码相同 1表示 补码为反码的最末位加1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网