Почему a&1+b&1 равно 0?. import java.util.Locale; import java.util.Scanner; public class Main {
Дата публикации:

Почему a&1+b&1 равно 0?. import java.util.Locale; import java.util.Scanner; public class Main {


Почему a&1+b&1 равно 0?. import java.util.Locale; import java.util.Scanner; public class Main { public static void main(String [] args) { Scanner sc= new Scanner( System.in ); sc.useLocale( Locale.US ); int a=3,b=5; System.out.println(a&1+b&1); } }

Выражение a&1+b&1 означает побитовое И (&) между a и 1, затем сложение с побитовым И (&) между b и 1.

В данном случае a равно 3, что в двоичной системе равно 0011, а 1 равно 0001. Побитовое И (&) между ними даст результат 0001, то есть 1.

Аналогично, b равно 5, что в двоичной системе равно 0101. Побитовое И (&) между ними даст результат 0001, то есть 1.

Затем происходит сложение двух результатов побитового И (&), то есть 1+1, что равно 2.

Однако, в данном случае используется оператор побитового И (&) с приоритетом ниже, чем оператор сложения (+). Поэтому сначала выполняется сложение 1+1, что равно 2, а затем побитовое И (&) между результатом сложения и a.

Так как результат сложения равен 2, а 2 в двоичной системе равно 0010, побитовое И (&) между 0010 и 0011 (a) даст результат 0010, то есть 2.

Итак, результат выражения a&1+b&1 равен 2.