为什么-128的补码是10000000呢? 看了解答我实在想不通 有大神可以说得明白点吗
你的说法没有错,但不严密。应当这样说,所有的整数都有原码、反码、补码,只是正数的原码、反码、补码与原码相同。而无符号整数是按正数对待的,所以它的原码、反码、补码也与原码相同。这里说的反码与通常的按位取反不完全是一回事,这里的反码只对负数而言且高位的1是不变的,而通常说的按位取反则是包括最高位的。不知道当初的“理论家”为什么要搞出个反码、补码来,搞得初学者非常纠结;其实这里说的反码是为求补码服务的,而补码就是负整数在计哗阀糕合蕹骨革摊宫揩算机中的表示方法,为什么当初不搞成正整数与负整数的二进制表示不一样:3是011,而-3是101不就完了嘛?
补码就是同余。
8位只能表示256个数,0到255,但我还想表示一些负数,就用与该负数同余的正数来表示:-1=255,-2=254等等。
1、符号位和数值域统一处理, 第八位用0和1来表示正和负。
2、正数=原码,负数=反码加一。
设w位二进制数x表示为,将该二进制数以补码的规则解释,
有以下公式:
10000000,这个八位的补码,代表的是:-128。
-------------------------
这个问题,不能用取反加一求原码来解决。
因为,-128,有八位的补码,却没有八位的原码和反码。
原码和反码的定义,都是有缺陷的:
一个数字零,它们却都定义了两个编码 +0-0!
所以,八位的原码反码,只能表示-127 ~ +127。
所以,它们都无法表示-128。
因此,用“取反加一”求-0 或-128 的补码,都是行不通的。
同样,用“取反加一”求补码 1000 0000 对应的原码,也是不灵的。
-------------------------
求补码的正规做法,是使用定义式:
当 X >= 0, [ X ]补 = X; 零和正数不用变换。
当 X < 0, [ X ]补 = X + 2^n。 n 是补码的位数。
这个定义式,是通用的。你可以在书上找到的。
那么,[-128]补 = -128 + 2^8 = 1000 0000 (二进制)。
所以,八位的补码 1000 0000,就是代表数值-128。
掌握了补码的定义式之后,你就会发现:
-------------------------
掌握了补码的定义式之后,你就会发现:
原码反码取反加一符号位不变。。。
这一烂摊子事,都是不需要的了。
而且,计算机中,只用补码,原码反码,都是不存在的。
那么,为什么还要学习这么多的垃圾知识呢?
你想想老外的数学水平吧,就可以理解了。
对于带符号数而言,真正的表示范围是-127~+127,但是这其中包含了两个0:+0(00000000)和-0(10000000)。而在数学中,0是没有符号的。所以规定整数0用+0来表示,那么-0就是一个没有用的二进制码了。而对于二进制低7位而言,模为128,那么128与0就是等值的,此时符号位是负的,于是规定-0就表示-128。这是人为规定。图中算式的意思,你可以理解为:在模128的情况下,128=0(128的二进制低7位=0000000,与0的二进制低7位一样)。
用八位二进制补码表示整数负128,其表现形式为?
用八位二进制补码表示整数负128,其表现形式为?[-128]补码 = 1000 0000。你采纳的答案说:不可能表示出“负128”,最多只能是负127。他说的,是错误的,你上当受骗了。八位二进制的补码,可表示十进制数的范围是:-128 ~ +127。怎么会“不可能表示...”!
-128的补码是什么?原码是什么?乱死我了!
128没有原码、逆码和补码,但是补码是从-128到+127,所以-128的补码应该是1000万,-128的补码没有逆码。减128等于1000000。二进制源代码或8位二进制逆码的表示范围为-127~+127,不能表示-128;8位二进制补码范围为-128~+127,-128的8位二进制补码范围为1000万。其他的都超过了,负127...
128 与 -128 的原码,反码,补码是多少。求大神解
大哥 在8位整数里原码的取值范围为-127到+127 反码也是但补码是-128到+127,所以 -128的补码应该是10000000,其他的都溢出了,估计你问的是8位整数吧,要是16位的话就把第十六位作为符号位 就行了 本回答由提问者推荐 举报| 答案纠错 | 评论 68 45 天天来sb 采纳率:11% 擅长: 暂未定制 为...
-128的二进制补码是怎么得来的?
补码10000000唯一的表示-128是一个规定,不需要推算,理由如下:现在来推-128的补码:-128的补码:10000000-10000000(+128没有符号位)=10000000 -128的反码:11111111(10000000+1=10000000+11111111=11111111)-128的原码:10000000(反码取反)往回推:-128的原码10000000(-128,进位被舍去)-128的反码...
若采用8位二进制补码表示十进制整数-128.则其表示形式为?
-1即1000 0001取反后为1111 1110 再加1得补码为1111 1111;-2即1000 0010(理解为-1的数字位加了1成了10)取反后为1111 1101再加1得补码为1111 1110;依次类推...-127即1111 1111取反即1000 0000再加1得补码为1000 0001 -128即1000 0000(同理可以理解为数字位加1成了000 0000)取反后...
-128的补码是多少 详解
在计算机系统中,数值,一律用补码表示和储存。在计算机系统中,并没有原码和反码。对于八位的二进制,可以构成 256 组补码。用其中的一半(128 个)表示负数:-1 ~ -128。数值 0 的八位补码,就是:0000 0000。-1 的补码,就是用 0 的补码,减去 1。用二进制相减,可得:1111 1111 (十...
若采用8位二进制补码表示十进制整数-128,则表示形式为
若采用8位二进制补码表示十进制整数-128,则表示形式为 常说的“取反加一”,解决不了这个问题。8 位二进制的原码和反码,表示范围都是:-127 ~+127。必须采用“补码定义式”才能求出-128 的补码。你去算一下吧,正确答案就是:1000 0000。
-128的补码是多少 详解
什么是补码?怎么求补码?看看书,就会知道,补码,是有严格定义的。按照定义来求补码,就用不着涉及原码反码。如果,你非要用求反加一的做法,就难免碰上原码反码。但是,的八位码长的限制下,-128,既没有原码,也没有反码。这时,你还要用求反加一的做法,就一定会碰的头破血流。--- 按照补码...
-128的补码怎么算?
-128是个特殊的数,不用考虑符号位!若字长为1byte,因有一位是符号位,所以原码能表示数值的范围为(-127~-0 +0~127)共256个注:-0和+0.(印度人将零作为标记并放入运算之中,对人类文明的贡献极大)在补码中用(-128)代替了(-0),所以补码的表示范围为:(-128~0~127)共256个.注:(-128)...
-128的二进制补码是怎么得来的?
结论是,-128在二进制中的补码10000000是由特定规则确定的,并非通过复杂的计算得出。这个规则简单明了:为了表示负数,补码采用的是直接减去该数的绝对值(128)然后加上1。对于-128,它的绝对值128的反码是11111111,然后加1就得到补码10000000。这种设计使得在补码系统中,-128与-0区分开来,同时保持了...
钊饺氨酚: 补码10000000唯一的表示-128是一个规定,不需要推算,理由如下: 现在来推-128的补码: -128的补码:10000000 - 10000000(+128没有符号位)=10000000 -128的反码:1111 1111(1000 0000 +1=1000 0000+1111 1111=1111 1111) -128的...
榆社县13134773857: 计算机的补码为何可以表示 - 128, - ?
钊饺氨酚:[答案] 没有为什么.就是这样规定的.(老师上课就是这样说的) 可以这样理 原码和反码能表示的有符号数范围都是-127~+127 其中,+0和-0的原码、反码都不相同. 而在补码中,+0和-0的补码是一致的,都是00000000 如此一来,补码中相应多出了一个数...
榆社县13134773857: 为什么8位有符号十进制整数- 128的补码是1000 0000 ?我想来想去想不通 - 128不是超过8位了嘛?应该和+128一样,归在16位里啊,为什么128的补码是... - ?
钊饺氨酚:[答案] +0和-0都是一个. 看看补码的原理就是了. 好像是绝对值按位取反+1. 128在8位补码是无法表示的,-128才能表示. 1000 0000是-128的补码,0的补码就是0.
榆社县13134773857: 书上说八位二进制的范围是 127至 - 128,为什么负数下限是 - 128而不是 - 127 书上说 - 128的补码是1000 0000 ,而在算补码是后面七位先取反后加一,所以如果... - ?
钊饺氨酚:[答案] 1000 0000表示的是 -1*1*2^7+0*(2^6+2^5+...+2^0)=-128 最大的正整数是0111 1111 表示的是-1*0*2^7+2^6+2^5+...+2^0=127 这么写明白了它是怎么表示的了吧
榆社县13134773857: 为什么8位有符号十进制整数- 128的补码是1000 0000 ?我想来想去想不通 - ?
钊饺氨酚: +0和-0都是一个. 看看补码的原理就是了. 好像是绝对值按位取反+1. 128在8位补码是无法表示的,-128才能表示. 1000 0000是-128的补码,0的补码就是0.
榆社县13134773857: 计算机的补码 1:采用8位字长,原码10000000为什么等于 - 128而不是等于02:在定点补码表示纯小数,采用8位字长,编码10000000表示的十进制是 - 1,这... - ?
钊饺氨酚:[答案] 1.是这样规定的,如果硬要理解的话,可以这样理16位的-128是1000000010000000,而8位恰好位于分界点,在8位的范围内,-127到127肯定是很好理解的,而10000000表示-128理解成-0也行,理解成-128也行,采取后者正好跟16位的兼容,所以...
榆社县13134773857: 请高手解释一下为什么 - 128用二进制表示为1000000000000000? - ?
钊饺氨酚: -128的8位补码是:1000 0000B,换算成十进制就是 128. 负数的补码,是用“模”计算出来的,即: [X]补 = 256 - |X| = 256- |-128| = 128. 不要用“求反加一”来算,那只不过是一个经验公式而已.
榆社县13134773857: 为什么[ - 128]补码为1000 0000B,应该超出8位了啊 - ?
钊饺氨酚: 不然这个10000000表示什么呢?-0?当然不是.0是00000000,要么就有两个0了,所以这个10000000就规定是-128,就这最小的一个特殊,这就是规定,没有为什么.(包括16位的-65536同理)
榆社县13134773857: - 128的二进制补码是怎么得来的?不要告诉我 - 128的补码是10000000,我要问的是计算过程,按照原码取反,反码加1我得的结果不是这个.所以有谁知道这... - ?
钊饺氨酚:[答案] 10000000表示-128的补码,你可以理解为是一个特殊性.各种8位二进制的表示法的数据范围如下:原码: -127 ~ 127反码: -127 ~ 127补码: -128 ~ 127补码运算:正数为原码本身,负数为原码取反加一 127为正数,其补码为原码01...
榆社县13134773857: 求教有关 - 128补码的问题? - ?
钊饺氨酚: -128=110000000 前面的“1”是符号位,后面的10000000中的“1”是数值中的一部分,所以110000000应该是单符号位而不是双符号位.-2^n是个特殊数(n为x数值位的长度):它补码的求法应按照公式进行运算:如:-128 “[-2^7]补”=(2^8)+(-2^7)=10000000 在纯整数的“原码”表示中,“[-2^n]原”是不能表示的;而在“补码”表示中,在模为2^(n+1)的条件下,纯整数的补码最小可以表示到-2^n .这时在[-2^n]中,符号位的1既表示符号“-”,也表示数值2^n .