Priporočena, 2023

Izbira Urednika

Razlika med & in & &

Oba »&« in »&&« sta operaterja, ki se uporabljata za ocenjevanje pogojnih stavkov. Operator & je logični in tudi bitni operater. Operator && je zgolj logični operater. Osnovna razlika med operatorjem & & & & je, da operater & ovrednoti obe strani izraza, medtem ko operator && oceni le levo stran izraza, da dobi končni rezultat. Dovolite nam, da razumemo druge razlike med & in && s pomočjo primerjalne tabele.

Primerjalna tabela

Podlaga za primerjavo&&&
OperaterTo je "bitni operater".Je "logični operater".
VrednotenjeOcenjuje levo in desno stran izraza.Ocenjuje le levo stran izraza.
Deluje naprejDeluje na "Boolean datatype", kot tudi deluje na "bitov".Deluje samo na "Boolean podatkovni tip".
UporabaUporabite za preverjanje logičnih pogojev in tudi za prikrivanje določenih bitov, kot so paritetni bitovi.Uporablja se samo za preverjanje logičnih pogojev.

Opredelitev & (Bitwise IN)

Ta "&" operater se uporablja kot oboje, logični (&) operator in bitni operator. Deluje na boolean in binarnih podatkih. Ko je operator & operator uporabljen kot logični & operator, ima za posledico »true«, če sta obe strani izraza vrednotenja resnični, sicer vrne »false«. Prevajalniku omogoča ocenjevanje obeh strani izraza. To pomeni, da čeprav leva stran izraza prikaže napačno, oceni desno stran izraza.

Dovolite nam, da to razumemo z zgledom.

 int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // izhod napačna b = 5 

Pri vrednotenju leve strani izraza (a == 6) pride do napačnega, operator & nato oceni desno stran izraza (b ++ == 6) kot vrednost b korakov.

Ko se '&' uporablja kot 'bitni operator', najprej oboje operande pretvori v binarno obliko in nato deluje z njim z bit-by-bit. Po operaciji je dobljeni rezultat v binarni obliki, ki se nato pretvori v decimalno. Vsak bit, ki je 0 v katerem koli od operandov, ima rezultat 0. Če sta oba bita operandov 1, je končni bit 1. Bititni in operator je urejen z isto tabelo resnice kot z logičnim in operatorjem.

Poglejmo bitno operacijo & operator.

 int a; a = 3 in 4; // 011 & 100 = 000 system.out.println ("a =" + a); // izhod a = 0 

Tu se decimalna vrednost 3 in 4 na začetku pretvorita v binarno obliko, nato pa operater & bitov izvede operacijo & na njih bit-po-bit. Dobljeni rezultat je v binarni obliki, ki se nato ponovno pretvori v decimalno obliko.

Opredelitev && (kratek stik IN)

Ta && operater deluje popolnoma logično. Deluje samo na tipu podatkov boole. Imenuje se tudi operater kratkega stika. Ker preverja le levo stran izraza. Če leva stran izraza povzroči napačno, potem se ne ukvarja z ocenjevanjem desne strani izraza.

Dovoljuje nam, da razumemo delovanje operaterja && z zgledom.

 int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // izhodna napačna b = 4 

Tukaj je pogoj (a == 6) napačen, operator && ne oceni izraza (b ++ == 6), zato vrednost b ne poveča.

Ključne razlike med & in & &

  1. Operator & je logičen in tudi bitni operater, saj deluje tako na booleansih kot tudi na binarnih podatkih, medtem ko je operater && le logični operater, saj deluje le na tipu logičnih podatkov.
  2. Operator & oceni obe strani izraza, da dobi končni rezultat, medtem ko operator && oceni le levo stran izraza in če se izkaže, da je napačen, niti ne oceni desne strani izraza.

Opomba:

Pri ocenjevanju boolovega podatkovnega tipa oba operaterja dobita »true« samo, če sta oba operanda resnična, sicer vrne »false«.

Sklep:

Operator && & & se uporabljata za ovrednotenje boolean pogoja, medtem ko se operater & uporablja tudi za bitno operacijo. Ko zahtevamo ovrednotenje obeh strani izraza, uporabimo tudi operator operator, ki ga lahko uporabimo && operator.

Top