Каков результат этого Java-кода и почему?java | оператор для чего?
int a = 5 | 3 ;
System.out.println(a);
Каков результат этого Java-кода и почему?java | оператор для чего?
int a = 5 | 3 ;
System.out.println(a);
Это называется «побитовое ИЛИ».
5 | 3 в битах равно
0101
or
0011
----
0111
Перед перечислениями appered в Java 5, это был общий шаблон, чтобы сделать некоторые константы равна степенями 2 и использование побитового ИЛИ, чтобы выразить оба свойства. Например, предположим, что шрифт может быть 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;
}
}
Затем, если вы хотите создать стиль жирным шрифтом и подчеркиванием - просто сделать это:
FontStyle boldAndUnderlined = new FontStyle();
boldAndUnderlined.setFOntStyle(FontStyle.BOLD | FontStyle.UNDERLINED);
Хм, поэтому функция setFontStyle должна быть записана в соответствии с этим стилем. Например, если я отправляю setFontStyle (3 | 5), это означает, что setFontStyle (7) не должно быть специального перечисления равным 7. –
+1 для урока истории. – bancer
Мой поиск начался с этого оператора gl.glClear (GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); при изучении opengl на android это не старая платформа стиля. –
Его двоичный „или“ оператор в куче других языков, я предполагаю, что это то же самое в Java
Это оператор побитового, часть nuts and bolts Java tutorial
На выходе результат «или» битов в двоичном представлении чисел.
Это поразрядный или оператор.
это побитовое или:
5 = 110
3 = 011
5 | 3 =
111
| оператор побитовое ИЛИ.
5 в двоичной системе записывается 101 и 3 записывается 11. Таким образом, 3 | 5 даст вам 111, который 7.
Это побитовое или.
Я не тестировал его. Но это должно быть 7.
101 -> 5
011 -> 3
----
111 -> 7
1|1 = 1
1|0 = 1
0|1 = 1
0|0 = 0
Какой выход? – Josh
Это домашнее задание? – SingleNegationElimination
Запустите его и узнайте. Затем вернитесь и примите некоторые из лучших ответов на ваши предыдущие вопросы. –