C语言中负数的补码怎么求

比如-9,怎么求的,现在我知道正数补码最高位0,负数最高位为1,先求原码的反码,再把反码加1,能把-9的补码过程给我演算一遍吗?... 比如-9,怎么求的,现在我知道正数补码最高位0,负数最高位为1,先求原码的反码,再把反码加1,能把-9的补码过程给我演算一遍吗? 展开
 我来答
沙里波特
2022-01-22 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:639万
展开全部

正数,本身就是补码。

负数,就用它的正数,减一取反,即可得到补码。

如,已知:+9 的二进制是:0000 1001。

下面求-9 补码:

先减一:0000 1001 - 1 = 0000 1000;

再取反:1111 0111。

所以有:-9 补码 = 1111 0111。

这不就完了吗!

简不简单? 意不意外?

原码反码符号位,讨论这些垃圾干嘛?

这些垃圾,都是用来骗吃骗喝的!

枚雅昶杨骞
2019-09-07 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:659万
展开全部
对于有符号数(分正负的),的最高位是符号位
65的二进制是
0
1000001
补码运算为按位取反
再加1
按位取反:1
0111110
加1:
1
0111111
直接转换为十进制的话,你把它当成无符号数把1也算了,所以不是-65

10111111到-65:
计算机根据符号位为1判断是负数
按位取反:01000000
加1:
01000001
这就是65,然后是负数,就是-65
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北彩寻宜
2019-02-16 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:609万
展开全部
7的二进制0000
0000
0000
0111,~是按位反,
结果是 1111
1111
1111
1000
注意最高位是1,说明这是个负数,负数在计算机中是补码,补码是十进制多少呢,
把补码负号不变,其它取反,最后加1,这个就是原码.
即1000
0000
0000
0111+1
=1000
0000
0000
1000
是-8

公式~n
结果是
-(n+1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-16
展开全部
什么意思没明白诶直接用 ~运算 就能求出1的补数 +1就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-16
展开全部
八位二进制 9是00001001 逐位取反 11110110 加一 11110111 加符号位 111110111
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式