读书人

【散分贴】一道运算符的JAVA题求解析

发布时间: 2012-04-01 17:23:46 作者: rapoo

【散分贴】一道运算符的JAVA题,求解析
int a=-67,b=116,c=78;
int d=~a|b&c;
System.out.println(d);

请高手们 详细指导指导一下,本人基础差一点

[解决办法]
d是70
[解决办法]
位运算啊。这样就看清楚了:
(整数32位,~是按位取反,&是按位与,|是按位或)

int a=-67,b=116,c=78;
int d=~a|b&c;
System.out.println(Integer.toBinaryString(a));
System.out.println("0000000000000000000000000" + Integer.toBinaryString(~a));
System.out.println("0000000000000000000000000" + Integer.toBinaryString(b));
System.out.println("0000000000000000000000000" + Integer.toBinaryString(c));
System.out.println("0000000000000000000000000" + Integer.toBinaryString(b&c));
System.out.println("0000000000000000000000000" + Integer.toBinaryString(d));
System.out.println(d);

[解决办法]
-67:111...1011 1101
116:000...0111 0100
78: 000...0100 1110

116&78: 000...0100 0100
~67: 000...0100 0010

|: 000...0100 0110

所以结果是70,我dt了,竟然真的自己算了遍
[解决办法]
位运算啦

读书人网 >J2SE开发

热点推荐