c++按位取反运算,~9=-10是怎么得到的?

 我来答
sun_siliang
2012-07-28 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4651万
展开全部
假设整数用16位二进制表示,则
9的原码为:0000000000001001
~9的值为: 1111111111110110 ----->这个正好是-10的补码
观云者626391
2012-07-28
知道答主
回答量:15
采纳率:0%
帮助的人:14.1万
展开全部
0000 0000 0000 1001取反得1111 1111 1111 0110,是0000 0000 0000 1010的补码
即-10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ouyuanfeng2012
2012-07-28 · TA获得超过256个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:255万
展开全部
二进制 十进制
00001001 9
11110110 -10
11110111 -9
。。。。
11111111 -1
00000000 0
;->希望能帮到你
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mu326668629
2012-07-28 · 超过18用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:51万
展开全部
负数呀按位取反再+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyz810
推荐于2017-09-19 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31779
前端开发工程师

向TA提问 私信TA
展开全部

计算按位取反的一般方法:

  1. 将待计算的数用2进制表示,位数最少为可以表示出当前数的绝对值的二进制位数加1(多1位符号位)。也就是将9表示为01001,其中最左面的0是符号位,0为正,1为负。

  2. 将每个二进制位取反,及如果是1,结果为0,反之结果为1。取反后结果为10110

  3. 将结果看做是有符号数,转为十进制即可。最左面的一位是符号位,1代表是负的。在计算机中负数是补码表示的,有符号数10110转为10进制即-10

计算按位取反的简便算法

用-1减去待取反的数即为按位取反的结果:-1-9=-10

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式