补码的符号位是什么?

[+0]反码=0000 0000, [-0]反码=1111 1111 [+0]补码=0000 0000, [-0]补码=0000 0000 你会发现,+0和-0的补码是一样的。即 0的补码只有一种表示。这里解释一下[-0]补码是怎么得来的。负数的补码就是反码整体加一。符号位上的进位舍弃。(所以,舍弃了符号位的补码的第一位是数值...
补码的符号位是什么?
[+0]原码=0000 0000, [-0]原码=1000 0000
[+0]反码=0000 0000, [-0]反码=1111 1111
[+0]补码=0000 0000, [-0]补码=0000 0000
你会发现,+0和-0的补码是一样的。即 0的补码只有一种表示。
这里解释一下[-0]补码是怎么得来的。
负数的补码就是反码整体加一。符号位上的进位舍弃。(所以,舍弃了符号位的补码的第一位是数值位,不是符号位,符号位舍弃了)
另外解释一下原码符号位和补码符号位的关系,补码的符号位不是保持原码的第一位不变,而是 符号位不变,[-0]反码的第一个1是符号位,尾数中的7个1是数值位,尾数加一后,数值位产生了进位,1111 1111+1=1 0000 0000(计算补码的过程中,并不是先保证第一位不变,而是保证符号位不变,保证补码规则是反码整体加一)。
所以,补码能表示的数的个数中,比原码反码少了一个,所以补码可以多表示一个真值为-128的数。
但是,多表示的这个数-128比较特殊,只有原码和补码,没有反码。
-128的补码是1000 0000。128的补码为什么是1000 0000。因为8位二进制的原值表达范围为:-127至127,共有256个组合序列 0000 0000 至1111 1111 。+128的原值在8位中是表达不出来的。

扩展资料:数值在计算机中是以补码的方式存储的,在探求为何计算机要使用补码之前, 让我们先了解原码, 反码和补码的概念。
对于一个数, 计算机要使用一定的编码方式进行存储。 原码, 反码, 补码是计算机存储一个具体数字的编码方式。
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。
机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。比如,十进制中的数 +2 ,计算机字长为8位,转换成二进制就是[00000010]。如果是 -2 ,就是 [10000010] 。
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 [10000010],其最高位1代表负,其真正数值是 -2 而不是形式值130([10000010]转换成十进制等于130)。
所以将带符号位的机器数对应的真正数值称为机器数的真值。
参考资料:原码_百度百科
反码_百度百科
补码_百度百科
2023-09-24
所谓的补码,不过就是“二进制的补数”而已,并无多少新意。
补数,哪有什么符号位!
补码,是二进制的补数,当然也没有符号位。
你如果上过小学,就一定懂得“补数”:
● 若两数之和是 10、100、1000 … 10^n(n是正整数),这两个数就互为补数。
● 例如,6 和 4、99 和 1、455 和 545 等,都是互为补数。
● 求任意数 X 的补数,算法就是: 10^n - X。
(其实,270° 和 90°,也可以说是“互为补数”的,只不过周期是 360° 。)
----------------------
利用补数,可转变运算方法。
两位十进制数的计数周期,是:10^2 = 100。 此时,+99 就能当做-1 !
随便一个加法:27 + 99 = 一百 26,若你丢了进位,就成了减法:27-1 = 26 !
丢了进位,就是减去了 100,加上 99,当然就是加上:99-100 = -1。
运算规律:
● 舍弃了进位,正数,就能当做负数使用!
● 舍弃了进位,加法,就能完成减法运算!
代替负数的正数,你一定会求,就是:10^n-|负数| = 10^n + 负数。
----------------------
计算机使用二进制数。
八位二进制数的计数周期,是:2^8 = 256。
如果舍弃了进位,就是减去了 256。
此时,+255 (二进制 1111 1111),就是-1 了!
同理,+254 (二进制 1111 1110),就是-2;
。。。
最后,+128 (1000 0000),就是-128。
以上这些正数,就是计算机专家所吹嘘的“补码”了。
由此可知,所谓的补码,不过就是一个“二进制的补数”而已。也就是小学的知识点!
而且,补码,与计算机专业教材中所喋喋不休的“符号位原码反码取反加一符号位不变符号位也参加运算 ... ”,这一滩垃圾,也并无任何瓜葛。
怎么求补码呢?
显然就是:[ X ]补 = 2^n + X,n 是补码的位数。
例 1:-31 的 8 位补码是多少?
解 1:2^8-31 = 225 = 1110 0001 (二进制补码)。 完事!
例 2:+31 的 8 位补码,又是多少?
解 2:2^8+31 = 287 = (1) 0001 1111 (舍弃进位,只留 8 位)。 完事!
八位补码,与其等值的正负数,如下表所示:

注意:使用补码时,必须舍弃进位。
例 3:用 8 位补码计算 80-31 = ?
解 3:列竖式计算如下。
+80:  0 1 0 1 0 0 0 0
-31:  1 1 1 0 0 0 0 1
--相加-----------
  进 1 、0 0 1 1 0 0 0 1
舍弃进位,只留下 8 位数,即:0011 0001 = +49。
这就用补码的加法,完成了减法运算。
由这个例题可知:
● 所谓的补码,也是一个完全正常的数字,并非是“什么什么码”。

● 所以,也就不必关心“最高位是符号位”,当然更不用想“符号位也参加运算”。
● 补码的计算,只要按照正常二进制数的加法规则“逢二进一”即可。
● 只是在最后,舍弃了进位,这就能得到减法运算的结果了。
而原码和反码,都没有这种功能。
所以,在计算机系统中,数值,一律采用补码表示和存储。
计算机,既不使用原码反码,也不保存它们。
因此,所谓的“取反加一”,计算机也是无须实现,而且也是无法实现的。
----------------------
老外的数学水平之低,大家都知道的。 况且,在二战期间,这些计算机专家显然也没有接受过系统的教育。
什么是计数周期? 什么是进位? 舍弃进位会怎样? 什么是补数? 怎样求补数?
这些计算机专家都是一窍不通的。
万般无奈,才编造了“符号位原码反码取反加一符号位不变”这一套骚操作!
我们的计算机老师,数学水平也是很洼的,这么简单的小题也弄不懂!
这些个计算机专家教授博导,竟然跟老外去学着做小学的算术题!
还把“符号位原码反码取反加一”列为了考研的内容。
而应该强调的【舍弃进位】,他们却是只字未提。
盲目的跟风,一门心思的往坑里跳,也不知道忽悠瘸了多少硕士博士。。。
哦,如果你没有上过小学,也不懂什么是补数,就不用看这些了,你还是跟着老外去做取反加一吧。
2025-06-15
mengvlog 阅读 2 次 更新于 2025-09-07 17:47:38 我来答关注问题0
  •  湖北倍领科技 负数补码怎么算啊、里边老有个符号位、符号位是指的哪位啊

    补码中的符号位是指最高位。对于8位的二进制数,最高位是符号位,0表示正数,1表示负数。因此,上述例子中35的补码00100011,最高位是0,表示这是一个正数。而-1的补码11111111,最高位是1,表示这是一个负数。通过补码的表示方式,可以简化计算机的硬件设计,使得加减法运算更为便捷。同时,补码也...

  •  做而论道 补码求真值怎么算?

    补码是这样计算的:\首位为符号位。\符号位为0表示正数,正数的补码=原码=反码。\符号位为1表示负数,负数的补码等于将符号位后面的位全部取反再加1。另外,一个数的补码的补码等于这个数的原码,所以如果已知一个数的补码,那么对这个补码求一次补码即可得到这个数的原码。\\...

  •  誉祥祥知识 移码与补码的关系是什么 符号位都是用0表示“正”

    在计算机中,无论是原码、反码、补码还是移码,符号位都是用0表示“正”,用1表示“负”。这一点是四种表示方法的共同点。2. 移码与补码的关系 定义关系:移码又叫增码,是符号位取反的补码。具体来说,对于一个给定的数,其补码的符号位如果是0(表示正数),则移码的符号位为1(因为取反了)...

  •  沙里波特 怎么求补码的原码?

    1、如果补码的符号位为“0”,表示是一个正数,其原码就是补码。2、如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。例如:已知一个补码为11111001,则原码是10000111(-7)。因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。其余七位1111001...

  •  沙里波特 负数的补码是什么?

    1、21 原码:0001 0101 补码:0001 0101 反码:0110 1010 2、-35 原码:1101 1101 补码:0010 0011 反码:1010 0010 3、-26 原码:1110 0110 补码:0001 1010 反码:1001 1001 正整数的补码是其二进制表示,与原码相同。负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为...

萌文网在线解答立即免费咨询

符号相关话题

Copyright © 2023 WEN.MENGVLOG.COM - 萌文网
返回顶部