菜鸟求教:java 中的“取补码”问题!?

我自学java,今天被这个知识搞晕了,请赐教!我看到书上写着“~”运算符是取补码的意思!为什么有人说是取反的意思呢?这是第一点疑问?第二,不知道补码之间是如何运算,例如2... 我自学java ,今天被这个知识搞晕 了,请赐教! 我看到书上写着 “~”运算符是取补码的意思!为什么有人说是取反的意思呢?这是第一点疑问?第二,不知道补码之间是如何运算,例如2取补码是-3(意思是不是2的补码是-3呢?应该一样吧?)他们这个过程是如何进行二进制运算的呢? 展开
 我来答
似曜始萦思
2019-04-03 · TA获得超过3759个赞
知道大有可为答主
回答量:3130
采纳率:33%
帮助的人:415万
展开全部
~
(位运算符),按位非,其运算法则为:如果某个数对应位上是1,则该位上最后得到的结果就是0;反之,如果某个数对应位上是0,则该位上最后得到的结果就是1.也就是有些人说的取反的意思,记住取反是在其转化为二进制后进行的。
补码的运算楼主可以看看:2的补码为
2转换为二进制
~
00000010
结果
11111101
可以看出结果为一个负数,因为最高位为符号位,1为负数,0为正数。负数的补码的规则为取反再加1,过程为
11111101
取反
00000010
加1
00000011
最后把00000011转为十进制3,但不要丢了符号,因此2的补码为-3.
不知楼主看懂了么。
ps:楼主应该知道十进制、二进制、八进制、十六进制的相互转换吧,不知道的话,可要好好补补啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式