社区
C语言
帖子详情
-128的补码是怎么算去来的???
csdnlady
2005-08-28 10:42:02
按求补码的要求:负数的补码等于原码最高位为1,其余各位为该数的绝对值,反码为最高位为1,其余各位求反,补码为反码加1
所以
原码 反码 补码
-127= 11111111 10000000 10000001
但
原码 反码 补码
-128=
-128的原码是10000000,还是110000000?
是不是按这个公式不能求啊,只是规定它的补码(00000000),也就是说这个0不是算出来的,只是规定这样而已???
知道的能回答一下吗?谢谢
...全文
6408
16
打赏
收藏
-128的补码是怎么算去来的???
按求补码的要求:负数的补码等于原码最高位为1,其余各位为该数的绝对值,反码为最高位为1,其余各位求反,补码为反码加1 所以 原码 反码 补码 -127= 11111111 10000000 10000001 但 原码 反码 补码 -128= -128的原码是10000000,还是110000000? 是不是按这个公式不能求啊,只是规定它的补码(00000000),也就是说这个0不是算出来的,只是规定这样而已??? 知道的能回答一下吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaocai0001
2005-08-28
打赏
举报
回复
2
在机器中
负数的补码是这样算的:
先将该负数取绝对值,再用二进制表示出这个绝对值
对该二进制数进行取反加一操作就得到负数的补码了
-128 绝对值是 128
128的二进制表示为:
1000 0000
取反
0111 1111
加1
1000 0000
这就是-128的补码
showtime84
2005-08-28
打赏
举报
回复
你试试用其它的也用公试算算看,不要用反码!
你就明白了!
showtime84
2005-08-28
打赏
举报
回复
补码定义:
[x]补={ x 0<=x<2~n-1
2~n-|x| -2~n-1<=x<0
根据这个定义, 2的8次方 256一128=128 在计算机中-128的补码就是10000000
xiaocai0001
2005-08-28
打赏
举报
回复
你用9位以上的二进制来算-128就能算出来了
比如用16位二进制表示
-128
原码: 1 000 0000 1000 0000
反码: 1 111 1111 0111 1111
补码: 1 111 1111 1000 0000
用9位二进制表示
-128
原码 1 1000 0000
反码 1 0111 1111
补码 1 1000 0000
用8位二进制原码表示-128,实现是"巧妇难为无米之炊"!
csdnlady
2005-08-28
打赏
举报
回复
就象你所说的,-128的原码用8位表示不出来(肯定是表示不出来了,因为多了一个负0),那它的补码该怎么样算出来呢,给个过程,呵呵
showtime84
2005-08-28
打赏
举报
回复
当x=2~n-1时,必须通过补码定义才能求得补码,因为在该点,x的原码,反码都无定义.
x反所能表示的整数范围为-(2~n-1-1),(2~n-1-1)
csdnlady
2005-08-28
打赏
举报
回复
这些我知道,只是根据上面的规定我算不出来-128是怎么得来的,也看不懂书上是怎么算出来的结果,呵呵,你能给我一种计算的方法吗?
xiaocai0001
2005-08-28
打赏
举报
回复
是啊
所以你想用原码表示出 -128
那就要用9位二进制
即 1 1000 0000
而限定在8位二进制中,是无法用原码表示出 -128
各种8位二进制的表示法的数据范围如下:
原码: -127 ~ 127
反码: -127 ~ 127
补码: -128 ~ 127
移码: (忘了)
原码和反码之所以比补码少表示一位数,是因为在原码和反码中,0有两种表示方法
showtime84
2005-08-28
打赏
举报
回复
-128的原码只能在16位里面请示,因为8位根本放不下!
16位的应当是1000000010000000
csdnlady
2005-08-28
打赏
举报
回复
问题是大部分的书上都不是这样描述的,我不知道他们的-128是怎么求出来的,都是一下子给出最后的答案,我对这个问题迷惑很久的,能给个详细的解答吗?谢谢,不好意思浪费你的时间了
showtime84
2005-08-28
打赏
举报
回复
楼上正解:原码的8位表示范围只能是-127~~+127
负数是以补码存放在内存中的,没有必要讨论它的原码!
csdnlady
2005-08-28
打赏
举报
回复
请是按以下这个规定给我求出来可以吗?
补码是这样规定的:
负数:最高位为1,其余各位为原码的相应位取反,然后对整个数加1
如:-7的原码 10000111
-7的反码 11111000
-7的补码 11111001
这样你来求一下-128吧,谢谢
-128的原码 ???
xiaocai0001
2005-08-28
打赏
举报
回复
你表述的那种原码,反码表示法都是另设有符号位的.
如果有符号位的话,
8位二进制的原码只能表示出-127 ~ + 127
是表示不出-128的
xiaocai0001
2005-08-28
打赏
举报
回复
-128用二进制表示就是
128的原码:
1000 0000 --原码
-128的补码表示:
0111 1111 --反码
1000 0000 --补码
用一个字节是表示有符号整数的范围是-128 ~ 127
所以1000 0000 表示的是 -128的补码,而不是+128的原码
csdnlady
2005-08-28
打赏
举报
回复
不好意思我的描述有点问题:再补充
负数的原码等于最高位为1,其余各位为该数的绝对值,反码为最高位为1,其余各位求反,补码为反码加1,这样应该是对的吧
xiaocai0001
2005-08-28
打赏
举报
回复
按求补码的要求:负数的补码等于原码最高位为1,其余各位为该数的绝对值,
------------------------
没看过这样的
我只记得有:正数的补码=原码 负数的补码=原码取反加1
难道"原码取反加1"等价于"原码最高位为1,其余各位为该数的绝对值"
我试试看
【深入理解计算机网络】“数制”视频课程
本课程是在笔者畅销著作——《深入理解计算机网络》第1章节内容基础上全面改进并录制而成的,是国内系统、通俗的一套全面学会“数制”的专业视频课程。主要内容包括各种数制的主要特点及主要应用,各种数制间的相互转换方法,二进制数的算术和逻辑运算、机器数的三种主要表示形式(原码、反码和
补码
)及相互转换方法,
补码
的算术运算方法,以及主要的信息编码方式。
补码
计算(-
128
补码
)
什么是
补码
?怎么求
补码
? 看看书,就会知道,
补码
,是有严格定义的。 按照定义来求
补码
,就用不着涉及原码反码。 如果,非要用求反加一的做法,就难免碰上原码反码。 但是,八位码长的限制下,-
128
,既没有原码,也没有反码。 这时,你还要用求反加一的做法,就一定会碰的头破血流。 ------------ 按照
补码
的定义,负数的
补码
,定义如下: [ X ]补 = 模-| X | 按照定义,-
128
,如下求
补码
。 [-
128
]补 = 256-|-
128
| =
128
写成二进制,就是:1000 0000。 ---
-
128
的
补码
为什么是10000000?
-
128
的
补码
为什么是10000000? 参考:https://zhidao.baidu.com/question/308750116.html,“勤奋的qwerq2”回答者 求-
128
的
补码
不要用先求原码再求反码最后求
补码
的方法,因为-
128
没有原码和反码,只能直接根据定义来求,方法如下: 负整数
补码
的定义:[X]补=2^n+X; 设机器字长n=8,即一个字节 则[-
128
]补=2^8-
128
...
-
128
的
补码
-
128
的
补码
,是1000 0000? 求解过程: 1 0000 0000 - 1000 0000 —————————— 1000 0000 所以,-
128
的
补码
就是1000 0000. 那么,为什么要这样计算,而不用我们熟悉的反码加一呢? 首先,我们要知道,学术问题一般总是要到最根本的定义上去了解问题的本质。 所以,请回答:
补码
的定义是什么? 答:正数不变,负数即用模减去绝对值。 这里涉及到模的概念,那么模又是什么呢? “模”是指一个计量系统的计数范围。计算机也可以看成一个计量机器,因为计算机的
为什么-
128
的
补码
是1000 0000?
转自 这个问题并不是什么面试题,而是今晚刚上大一初学C语言的小辈问我的,一瞬间竟然有点发蒙,不知道该如何回答。好在最后还是理清了思路,顺便将这个非常基础的知识点总结下吧。 我们都知道,表示二进制有符号数有三种方式,即原码、反码和
补码
,而计算机中一律使用
补码
进行存储和运算。正数和0的
补码
与其原码相同,负数的
补码
则是其对应的反码加1得到。 假设字长为n比特,原码、反码能够表示的有符号数真值范围都是[-2n-1+1,
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章