
Összehasonlító táblázat
Az összehasonlítás alapja | & | && |
---|---|---|
Operátor | Ez egy "Bitáris operátor". | Ez egy "logikai operátor". |
Értékelés | Értékeli a kifejezés bal és jobb oldalát. | Csak a kifejezés bal oldalát értékeli. |
Működik | Működik a "Boolean datatype" -on, valamint "bit" -en működik. | Csak "Boole-adattípus" -on működik. |
Használat | Használja a logikai állapot ellenőrzését és bizonyos bitek, például paritásbitek maszkolására. | Csak logikai állapot ellenőrzésére szolgál. |
A & (bitenkénti és) meghatározása
Ezt a „&” operátort használják mind logikai (és) operátorként, mind bit-kezelőként. Boolean és bináris adatokon is működik. Amikor az & operátor logikai és operátorként kerül felhasználásra, akkor „igaz” -ot eredményez, ha az értékelés kifejezésének mindkét oldala igaz, máskülönben „hamis”. Lehetővé teszi a fordító számára, hogy értékelje a kifejezés mindkét oldalát. Ez azt jelenti, hogy ha a kifejezés bal oldala hamis, akkor a kifejezés jobb oldalát értékeli.
Megértjük ezt egy példával.
int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // kimenet hamis b = 5
Itt, a kifejezés bal oldalának (= = 6) kiértékelésénél hamis, az & operátor ezután a kifejezés jobb oldalát (b ++ == 6) értékeli, a b lépések értékét.
Amikor „&” -et használunk „bit bit operátor” -ként, akkor először mindkét operandumot bináris formává alakítja át, majd a & operator, bit-by-bit segítségével működik. A művelet után a kapott eredmény bináris formában van, amelyet ezután tizedesre konvertál. Bármely bit, amely az egyik operandumban 0, 0-nak adódik. Ha mindkét operandus bit 1, akkor az eredményül kapott bit 1. A bitikus és operátor ugyanaz az igazságtábla, mint a logikai és operátor.
Lássuk a & operátor bitenkénti működését.
int a; a = 3 és 4; // 011 & 100 = 000 system.out.println ("a =" + a); // kimenet a = 0
Itt a 3-as és 4-es decimális értéket kezdetben bináris formává alakítják át, majd a & bit-es operátor végrehajtja őket a bit-by-biten. A kapott eredmény bináris formában van, amelyet ezután ismét decimális formává alakítanak át.
A && (rövidzárlat és) rövidítése
Ez az & & operátor teljesen logikai operátorként működik. Csak a logikai adattípuson működik. Rövidzár-kezelőnek is nevezik. Mivel csak a kifejezés bal oldalát ellenőrzi. Ha a kifejezés bal oldala hamis, akkor nem zavarja a kifejezés jobb oldalának értékelését.
Lehetővé teszi, hogy megértsük a && operátor működését egy példával.
int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // kimenet hamis b = 4
Itt, mint a feltétel (a == 6) hamis, a && operátor nem értékeli a kifejezést (b ++ == 6), ezért a b értéke nem növekszik.
Főbb különbségek a & és
- A & operátor egy logikus, valamint egy bitenkénti operátor, mivel mind a booleán, mind a bináris adatokon működik, míg a && operátor csak logikai operátor, mivel csak logikai adattípuson működik.
- A & operátor a kifejezés mindkét oldalát értékeli, hogy megkapja a végeredményt, míg a && operátor csak a kifejezés bal oldalát értékeli, és ha hamisnak bizonyul, akkor még a kifejezés jobb oldalát sem értékeli.
Jegyzet:
A logikai adattípus értékelése során mindkét operátor csak akkor igaz, ha mindkét operand igaz, máskülönben „hamis”.
Következtetés:
A & & & & operátor mindkettőt a logikai állapot értékelésére használják, míg a & operátort is használják a bitenkénti működéshez. Amikor a kifejezés mindkét oldalát meg kell vizsgálnunk, a & operátort másként használjuk, és a && operátort használhatjuk.