Рекомендуємо, 2024

Вибір Редакції

Різниця між & і &&

Обидва "&" і "&&" є операторами, які використовуються для оцінки умовних операторів. Оператор і є логічним, як і побітовим оператором. Оператор && є чисто логічним оператором. Основною відмінністю оператора & & && є те, що оператор & оцінює обидві сторони виразу, тоді як оператор && оцінює лише ліву частину виразу, щоб отримати кінцевий результат. Давайте зрозуміємо інші відмінності між & та && за допомогою діаграми порівняння.

Діаграма порівняння

Основа для порівняння&&&
ОператорЦе "побітний оператор".Це "Логічний оператор".
ОцінкаВін оцінює як ліву, так і праву частину виразу.Він лише оцінює ліву частину виразу.
Працює наВін працює на "булевому типі даних", а також працює на "бітах".Він працює тільки на "булевому типі даних".
ВикористовуйтеВикористовується для перевірки логічного стану, а також для маскування деяких бітів, таких як біти парності.Використовується лише для перевірки логічного стану.

Визначення & (побітових)

Цей оператор '&' використовується як як логічний (&) оператор, так і побітний оператор. Він працює як на булевих, так і на двійкових даних. Коли оператор & оператор використовується як логічний оператор & оператор, то це призводить до “true”, якщо обидві сторони вираження оцінки є істинними, інакше воно повертає “false”. Це дозволяє компілятору оцінювати обидві сторони виразу. Тобто, навіть якщо ліва частина виразу має вигляд false, вона оцінює праву частину виразу.

Дозволяє нам зрозуміти це з прикладом.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // вихідний помилковий b = 5 

Тут, при оцінці лівої сторони виразу (a == 6), це призводить до помилкового, оператор & потім оцінює праву частину виразу (b ++ == 6) в результаті значення b приросту.

Коли '&' використовується як "побітний оператор", він спочатку перетворює обидва операнда в двійкову форму, а потім працює на ньому за допомогою & operator, bit-by-bit. Після завершення операції отриманий результат знаходиться в двійковій формі, яка потім перетворюється в десяткову. Будь-який біт, що дорівнює 0 в будь-якому з операндів, дорівнює 0. Якщо обидва біта операндів дорівнюють 1, то результуючий біт дорівнює 1. Побітний і оператор керується тією ж таблицею істинності, що і логічний оператор.

Подивимося побітова операція & operator.

 int a; a = 3 & 4; // 011 & 100 = 000 system.out.println ("a =" + a); // вихід a = 0 

Тут десяткові значення 3 і 4 спочатку перетворюються в їх двійкову форму, а потім & побітний оператор виконує операцію & на них побітно. Отриманий результат у двійковому вигляді, який потім перетворюється в десяткову форму знову.

Визначення && (короткого замикання)

Цей оператор && працює повністю як логічний оператор. Вона функціонує лише за типом логічних даних. Його також називають оператором короткого замикання. Оскільки він перевіряє лише ліву частину виразу. Якщо ліва частина виразу призводить до помилкового, то вона не турбується про оцінку правої частини виразу.

Дозволяє нам зрозуміти роботу оператора && з прикладом.

 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. Оператор & оцінює обидві сторони виразу, щоб отримати кінцевий результат, тоді як оператор && оцінює лише ліву частину виразу & якщо виявляється, що помилковий, він навіть не оцінює праву частину виразу.

Примітка:

Оцінюючи булевий тип даних, обидва оператори призводять до “true”, лише якщо обидва операнда є істинними, інакше він повертає “false”.

Висновок:

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

Top