22 & 8 等于多少

tianpan000 2011-06-13 05:22:11
程序结果是 6
怎么样运行来的。求详细过程。
22 || 8等于多少
...全文
309 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wycontos 2011-06-16
  • 打赏
  • 举报
回复
楼上正解
五哥 2011-06-16
  • 打赏
  • 举报
回复
22=10110(2)
8=1000(2)

22&8 是0 吧:
10110
& 01000
---------
00000 = 0

22|8 是0 吧:
10110
| 01000
---------
11110 = 30




凡心未灭 2011-06-15
  • 打赏
  • 举报
回复
~ :非,按位取反;
|:或,对应位店铺是0,结果才为0,其他都是1
&:与,对应位都是1,结果才为1,其他都是0
^:异或,对应位相同结果才为0,其他都是1

优先级:最高是~,接着是:&>^>|
具体运算看下面:

public class Test{
public static void main(String []args){
int a=-7, b = 16 , c = 8;
int d=~a|b&c;
System.out.println("a的二进制:"+Integer.toBinaryString (a));
System.out.println("~a:"+Integer.toBinaryString (~a));
System.out.println("b的二进制:"+Integer.toBinaryString (b));
System.out.println("c的二进制:"+Integer.toBinaryString (c));
System.out.println("b&c:"+Integer.toBinaryString (b&c));
System.out.println("~a|b&c=(~a)|(b&c)="+Integer.toBinaryString (~a|b&c)+"(2)>>"+d);
}
}

参考看这里:http://blog.csdn.net/dingxy/archive/2009/04/30/4140149.aspx
tianpan000 2011-06-15
  • 打赏
  • 举报
回复
int a=-7, b = 16 , c = 8;
int d = ~a | b & c ;
谁帮解释下,这里为什么d是6 ?谢谢
TKD03072010 2011-06-13
  • 打赏
  • 举报
回复
楼上正解!!!
happysmhzp 2011-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fkanf 的回复:]
22&8 是0吧,
22=10110(2)
8=1000(2)
再求与运算,结果是0

22||8 写法不对,||两边应该都是boolean型的
如果你想表达的是22|8,或运算,得11110(2)=30
[/Quote]

正解
凡心未灭 2011-06-13
  • 打赏
  • 举报
回复
22&8 是0吧,
22=10110(2)
8=1000(2)
再求与运算,结果是0

22||8 写法不对,||两边应该都是boolean型的
如果你想表达的是22|8,或运算,得11110(2)=30

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧