负数源码符号位为什么是1(负数的原码符号位)
本文目录一览:
原码、反码、补码,计算机中负数的表示?
一:对于正数,原码和反码,补码都是一样的,都是正数本身。
对于负数,原码是符号位为1,数值部分取X绝对值的二进制。
反码是符号位为1,其它位是原码取反。
补码是符号位为1,其它位是原码取反,未位加1。
也就是说,负数的补码是其反码未位加1。
移码就是将符号位取反的补码
二:在计算机中,实际上只有加法运算,减法运算也要转换为加法运算,
乘法转换为加法运算,除法转换为减法运算。
三:在计算机中,对任意一个带有符号的二进制,都是按其补码的形式进行运算和存储的。之所以是以补码方式进行处理,而不按原码和反码方式进行处理,是因为在对带有符号位的原码和反码进行运算时,计算机处理起来有问题。
而按补码方式,一方面使符号位能与有效值部分一起参加运算,从而简化运算规则。另一方面使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计
四:补码加、减运算公式
1):补码加法公式
[X+Y]补
=
[X]补
+
[Y]补
2):补码减法公式
[X-Y]补
=
[X]补-[Y]补
=
[X]补
+
[-Y]补
已知[+Y]补求[-Y]补的规则是全部位(含符号位)按位取反后再加1。
五:由补码求原码
已知一个数的补码,求原码的操作分两种情况:
1.
如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
2.
如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1;其余各位取反,然后再整个数加1。
===========================按你的要求以8位二进制进行计算=======
以8位二进制操作为例,其运算取值范围是-128~127。
那么综上所述,我们可以得到-126-100,可以看成(-126)+(-100),目的是使减法操作变为加法
-126
-
1111
1110
-反
1000
0001
-补
1000
0010
100
-
0110
0100
-
负数求补
1001
1011+1
-
负补
1001
1100
做补码相加得
-126补+(-100)
补-
1000
0010补
+
1001
1100补
-1
0001
1110补
-自然丢弃超出
0001
1110补
由补求原得到
0001
1110补
-
0001
1110原
得到的结果为00011110,如果两个负数相加如果溢出,那么结果一定是正数,由此可知计算结果溢出。
负1的原码和补码
lz,很高兴回答您的问题,正数的原反补一致,负数的反码为原码取反,补码为反码末尾加一,从补码到原码,再取反加1。
以八位2进制位为例:
1
0000001
-1原码,最高位1表示负数
1
1111110
-1反码,除了符号位其余全部取反
1 1111111
-1补码,反码加1
负数补码怎么算啊、里边老有个符号位、符号位是指的哪位啊?
原码就是这个数值本身的二进制形式例如0000
0001
表示+11000
0001
表示-1有符号最高位表示符号位,0表示正,1表示负。正数的原码,反码,补码都是这个数值本身的二进制形式。(2)负数的原码是数值的本身二进制形式。
负数的反码是对原码除符号位的其余各位取反(1变0,0变1)的操作。
负数的补码是先求反码,然后在+1。(-3)原=(1000
0011)原=(1111
1100)反=(1111
1101)补设计补码的目的:(1)在计算机中是没有减法运算的,只有加法运算。为了能达到使用减法,于是补码产生了。(2)为了统一正0和负0在计算机中的表示。(a)补-(b)补=(a)补+(-b)补正数零:0000
0000负数零:1000
0000在原码中0表示有2种,给计算结果带来不正确。但这两个0的补码确相同都是0000
0000注意一点:如果在求补码+1后有进位,要一直往前进位,包括符号位例如(1000
0000)补=(1111
1111)反+1=(1
0000
0000)
最高位溢出了,符号位现在是01000
0000
这个补码比较特殊,代表的是-128.所以n位能表示的范围-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多个一个(原因没有+0和-0之分了,而-0用别的数表示,所以多一个)。三.原码,反码,补码的表示方法(1)原码:在数值前直接加符号位表示方法。例如:
符号位
数值位(+7)原=
000
0111(-7)原=
1
000
0111注意:a.数值0在原码中有两种表现形式(+0)原=(0000
0000)
(-0)原=(1000
0000)b.8位二进制原码表示的范围-127~+127(2)反码:正数:正数的原码和反码相同。负数:负数的反码,符号位为“1”,数值部分按位取反。例如:
符号位
数值位(+7)反=
000
0111(-7)反=
1
111
1000注意:a.数值0在反码中也有两种表现形式(+0)反=(0000
0000)
(-0)反=(1111
1111)b.8位二进制原码表示的范围-127~+127
负数补码怎么算啊、里边老有个符号位、符号位是指的哪位啊?这里有视频教程可以看下