Рекомендуем, 2020

Выбор редакции

Разница между & и &&

«&» И «&&» - это операторы, используемые для оценки условных операторов. Оператор & является как логическим, так и побитовым оператором. Оператор && является чисто логическим оператором. Основное различие между операторами & и && заключается в том, что оператор & вычисляет обе стороны выражения, тогда как оператор && оценивает только левую часть выражения для получения окончательного результата. Позвольте нам понять другие различия между & и && с помощью сравнительной таблицы.

Сравнительная таблица

Основа для сравнения&&&
операторЭто «побитовый оператор».Это «Логический оператор».
оценкаОн оценивает как левую, так и правую часть выражения.Он оценивает только левую часть выражения.
Работает наОн работает с «логическим типом данных», а также с «битами».Он работает только на «логическом типе данных».
использованиеИспользуется для проверки логического состояния, а также используется для маскировки определенных битов, таких как биты четности.Используется только для проверки логического состояния.

Определение & (Побитовое И)

Этот оператор «&» используется как логический (&) оператор и как побитовый оператор. Он работает как с булевыми, так и с двоичными данными. Когда & оператор используется в качестве логического & оператора, то это приводит к «истине», если обе стороны выражения оценки истинны, в противном случае он возвращает «ложь». Это позволяет компилятору оценивать обе стороны выражения. То есть, даже если левая часть выражения приводит к ложному результату, она оценивает правую часть выражения.

Позвольте нам понять это на примере.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // вывод ложь b = 5 

Здесь при оценке левой части выражения (a == 6) это приводит к значению false, а оператор & затем вычисляет правую часть выражения (b ++ == 6), в результате значение b увеличивается на единицу.

Когда «&» используется как «побитовый оператор», он сначала преобразует оба операнда в двоичную форму, а затем работает с ним, используя & оператор, побитовый бит. После операции полученный результат находится в двоичной форме, которая затем преобразуется в десятичную. Любой бит, равный 0 в любом из операндов, приводит к 0. Если оба бита операндов равны 1, то результирующий бит равен 1. Битовый оператор & определяется той же таблицей истинности, что и его логический оператор &.

Давайте посмотрим на побитовую операцию оператора &.

 int a; а = 3 и 4; // 011 & 100 = 000 system.out.println ("a =" + a); // выводим a = 0 

Здесь десятичные значения 3 и 4 первоначально преобразуются в их двоичную форму, а затем оператор & bitwise выполняет операцию & над ними побитно. Полученный результат находится в двоичной форме, которая затем снова преобразуется в десятичную форму.

Определение && (Короткое замыкание И)

Этот оператор && работает полностью как логический оператор. Он работает только с логическим типом данных. Это также называется оператором короткого замыкания. Так как он проверяет только левую часть выражения. Если левая часть выражения приводит к значению false, тогда она не беспокоится об оценке правой части выражения.

Позвольте нам понять работу оператора && на примере.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // вывод ложь b = 4 

Здесь, поскольку условие (a == 6) ложно, оператор && не оценивает выражение (b ++ == 6) в результате, значение b не увеличивается.

Ключевые различия между & и &&

  1. Оператор & является логическим, а также побитовым оператором, поскольку он работает как с логическими, так и с двоичными данными, тогда как оператор && является только логическим оператором, поскольку он работает только с логическим типом данных.
  2. Оператор & вычисляет обе стороны выражения, чтобы получить конечный результат, тогда как оператор && оценивает только левую часть выражения, и если получится false, он даже не оценивает правую часть выражения.

Замечания:

При оценке логического типа данных оба оператора выдают «true», только если оба операнда имеют значение «истина», в противном случае возвращается «ложь».

Заключение:

Операторы & и && оба используются для оценки логического условия, тогда как оператор & также используется для побитовой операции. Когда нам требуется оценить обе стороны выражения, используется оператор &, иначе мы можем использовать оператор &&.

Top