Zalecane, 2019

Wybór Redakcji

Różnica między & i &&

Obydwa znaki "&" i "&&" są operatorami, używanymi do oceny instrukcji warunkowych. Operator & jest zarówno operatorem logicznym, jak i bitowym. Operator && jest wyłącznie operatorem logicznym. Podstawowa różnica między operatorem & i && polega na tym, że operator & operator ocenia obie strony wyrażenia, podczas gdy operator && ocenia tylko lewą stronę wyrażenia, aby uzyskać końcowy wynik. Rozumiemy pozostałe różnice między & i && z pomocą tabeli porównawczej.

Wykres porównania

Podstawa do porównania&&&
OperatorJest to "Bitwise Operator".Jest to "operator logiczny".
OcenaOblicza zarówno lewą, jak i prawą stronę wyrażenia.Ocenia tylko lewą stronę wyrażenia.
Działa naDziała na "Boolean datatype", jak również działa na "bitach".Działa tylko w "Boolean typ danych".
Posługiwać sięSłuży do sprawdzania stanu logicznego, a także do maskowania niektórych bitów, takich jak bity parzystości.Używane tylko do sprawdzania stanu logicznego.

Definicja & (Bitwise AND)

Ten operator "&" jest używany zarówno jako operator logiczny (&), jak i bitowy. Działa zarówno na danych binarnych, jak i binarnych. Kiedy operator & jest używany jako operator logiczny, wówczas wynikiem jest "prawda", jeśli obie strony wyrażenia oceny są prawdziwe, w przeciwnym razie zwraca "fałsz". Pozwala to kompilatorowi ocenić zarówno stronę wyrażenia. Oznacza to, że nawet jeśli lewostronna strona wyrażenia daje wynik fałszywy, ocenia prawą stronę wyrażenia.

Pozwala nam to zrozumieć na przykładzie.

 int a = 4, b = 5; system.out.println ((a == 6) i (b ++ == 6)); system.out.println ("b =" + b); // wyjście false b = 5 

Tutaj, przy ocenie lewej strony wyrażenia (a == 6), wynikiem jest false, operator & następnie ocenia prawą stronę wyrażenia (b ++ == 6) jako wynik, wartość przyrostów b.

Kiedy "&" jest używane jako "operator bitowy", najpierw przekształca oba operandy w postać binarną, a następnie operuje na nim za pomocą & operator, bit-by-bit. Po operacji uzyskany wynik ma postać binarną, która jest następnie przekształcana na dziesiętną. Każdy bit, który wynosi 0 w jednym z argumentów, daje 0. Jeśli oba bity operandów wynoszą 1, wówczas wynikowy bit jest 1. Bitowy, a operator jest zarządzany przez tę samą tabelę prawdy, co operator logiczny i operator.

Zobaczmy bitową operację operatora &.

 int a; a = 3 i 4; // 011 i 100 = 000 system.out.println ("a =" + a); // wyjście a = 0 

Tutaj, wartość dziesiętna 3 i 4 są początkowo konwertowane na ich binarną postać, a następnie operator & bitwise wykonuje operację & bit na bicie. Otrzymany wynik jest w postaci binarnej, która jest następnie konwertowana do postaci dziesiętnej ponownie.

Definicja && (zwarcie AND)

Ten && operator działa całkowicie jako operator logiczny. Działa tylko w oparciu o boolowski typ danych. Nazywany jest również operatorem zwarciowym. Ponieważ sprawdza tylko lewą stronę wyrażenia. Jeśli po lewej stronie wyrażenia kończy się fałszem, nie przejmuje się oceną prawej strony wyrażenia.

Pozwala nam zrozumieć działanie operatora && na przykładzie.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // wyjście false b = 4 

Tutaj jako warunek (a == 6) jest fałszem, operator && nie ocenia w ten sposób wyrażenia (b ++ == 6), wartość b nie wzrasta.

Kluczowe różnice między & i &&

  1. Operator & jest zarówno operatorem logicznym, jak i bitowym, ponieważ działa zarówno na boolach, jak i na danych binarnych, podczas gdy operator && jest tylko operatorem logicznym, ponieważ działa on tylko na boolowskim typie danych.
  2. Operator & ocenia zarówno stronę wyrażenia, aby uzyskać końcowy wynik, natomiast operator && ocenia tylko lewą stronę wyrażenia, a jeśli jest wyłączona, to nawet nie ocenia prawej strony wyrażenia.

Uwaga:

Podczas oceniania boolowskiego typu danych, oba operatory dają "prawda" tylko wtedy, gdy oba argumenty są prawdziwe, w przeciwnym razie zwraca "false".

Wniosek:

Operator & i && służą do oceny warunku boolowskiego, podczas gdy operator & służy również do operacji bitowej. Gdy potrzebujemy ocenić zarówno stronę wyrażenia, operator & jest używany, możemy użyć operatora &&.

Top