2013-12-17 4 views
0

Из того, что я понимаю, оператор & подобен оператору & & за исключением того, что & & только проверяет второе, если первое верно, в то время как & проверки и независимо от результата первого. В основном & & просто экономит немного времени и силы.java & operator с двумя целыми числами?

Если это так, то как работает этот код?

int l = 0; 
if ((l & 8) != 0 && (l & 4) == 0){ do something} 

что делает (l & 8) и (l & 4) делать? Что делает & в этом случае?

+1

Это побитовый оператор И. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html –

+0

Это побитовое И. – Doorknob

+0

Кстати, это эквивалентно 'if ((l & 12) == 8) {do something}' – harold

ответ

9

& и & & - это два разных оператора, но разница не в том, что вы описали.

& выполняет бит-бит И двух целых чисел и производит третье целое число, бит которого установлен в 1, если оба соответствующих бита в двух исходных целых числах установлены равными 1; 0 в противном случае.

& & применяется только к двум булевым символам и возвращает третье булево значение, которое будет истинным, если оба входных логического значения истинны; false в противном случае.

+0

Это имеет смысл. Использует ли он двоичные коды из ASCII или просто прямое двоичное число 0, равное 0, 1 - 1, 10 - 2 и так далее? – nife552

+0

Чтобы использовать вашу терминологию, она использует «просто прямую двоичную систему 0, которая равна 0, 1 равна 1, 10 равна 2 и т. Д.», Которая известна как [двоичное число] (http://en.wikipedia.org/wiki/Binary_number). [ASCII] (http://en.wikipedia.org/wiki/ASCII) - это способ кодирования символов «письменного алфавита» в двоичные числа (например, кодирование символов). Существуют такие, как [EBCDIC] (http://en.wikipedia.org/wiki/EBCDIC) или [UNICDE] (http://en.wikipedia.org/wiki/UNICODE) –

Смежные вопросы