负数的反码问题

 我来答
泥遐思宿淑
2019-01-14 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:1150万
展开全部
最早的设想是负数就是正数按位取反,但是发现:
+0
=>
00000000
-0
=>
00000000
=>
11111111
两个二进制数表示同一个数,所以浪费了一个编码。于是想到了补码,就是取反之后再加一:
-0
=>
00000000
=>
11111111
=>
(1)00000000这是个九位的,最高位截去,就和+0统一了。
置于二进制数的加法,和十进制是一样的,只是满二进一代替了满十进一
11110011
+
1
10(最低位加一)
10(次低位加)
1(这位就不往前进位了)
依此类推
=11110100
隆俭余壬
2019-12-08 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:855万
展开全部
-12的二进制已经知道,符号位不变,其他位求反就是11110011,再加00000001,不就是11110100吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江菊祈婵
2020-05-09 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:969万
展开全部
先取得数的反码
然后按位取反
此时得到的是补码(因为在java中是使用补码来表示二进制数据的)
再变为原码就行了
负数的原码就是1xxxxx
第一位是符号位
后面是数值位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式