Почему 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.