这个java代码的输出是什么?为什么?
int a = 5 | 3 ;
System.out.println(a);
答案 0 :(得分:5)
这是一个按位运算符,是nuts and bolts Java tutorial
的一部分输出是'或'表示数字的二进制表示中的位的结果。
答案 1 :(得分:5)
这是一个按位或。
我没有测试它。但它必须是7。
101 -> 5
011 -> 3
----
111 -> 7
1|1 = 1
1|0 = 1
0|1 = 1
0|0 = 0
答案 2 :(得分:3)
它被称为“按位OR”。
5 | 3位的数字等于
0101
or
0011
----
0111
在java 5中出现的枚举之前,使一些常量等于2的幂并使用按位OR来表示这两个属性是一种常见的模式。例如,假设字体可以是BOLD,ITALIC和UNDERLINED。如果你有常数:
public class FontStyle {
final int BOLD = 1;
final int ITALIC = 2;
final int UNDERLINED = 4;
private int fontStyle;
public void setFontStyle(int style) {
this.fontStyle = fontStyle;
}
public boolean hasStyle(int style) {
return fontStyle & style == style;
}
}
然后,如果你想创建风格BOLD和UNDERLINED - 只需这样做:
FontStyle boldAndUnderlined = new FontStyle();
boldAndUnderlined.setFOntStyle(FontStyle.BOLD | FontStyle.UNDERLINED);
答案 3 :(得分:2)
|运算符是一点一滴的OR函数。
二进制中的5写为101,3写成11.因此3 | 5将给出111,即7。
答案 4 :(得分:1)
它的'二进制'或“运算符在一堆其他语言中,我认为它在java中是相同的
答案 5 :(得分:1)
它是按位或:
5 = 110
3 = 011
5 | 3 =
111
答案 6 :(得分:0)
答案 7 :(得分:0)