JAVA中“~”按位取反运算符的一些问题。

小弟初学JAVA,今天卡在“~”这个符号上了,按照书上说的是按位取反。这个定义到底是什么呢?比如5,101,加上符号位,0101.按位取反后应该是1010,答案应该是-2... 小弟初学JAVA,今天卡在“~”这个符号上了,按照书上说的是按位取反。这个定义到底是什么呢?比如5,101,加上符号位,0101.按位取反后应该是1010,答案应该是-2呀。可是,当我运行的时候,输出结果为什么是-6呢?程序如下,请各位老师赐教。。 public class BitOperation { public static void main(String args[]){ int a=5; System.out.println("~a="+(~a)); } } 运算结果是-6,我用的Eclipse 展开
 我来答
宅里花匠
2019-11-17 · TA获得超过3544个赞
知道大有可为答主
回答量:3041
采纳率:28%
帮助的人:206万
展开全部
首先你要知道现在我们用的多数都是32位机,所以整形数都是4个字节
那么再看看按位取反的结果:
00000000
00000000
00000000
00000101
这是5
00000000
00000000
00000000
00000000
这是0
11111111
11111111
11111111
11111111
这是-1
11111111
11111111
11111111
11111110
这是-2
11111111
11111111
11111111
11111101
这是-3
11111111
11111111
11111111
11111100
这是-4
11111111
11111111
11111111
11111011
这是-5
11111111
11111111
11111111
11111010
这是5取反的结果-6
看懂了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式