Sammenligningstabel
Grunnlag for sammenligning | & | && |
---|---|---|
Operatør | Det er en "Bitwise Operator". | Det er en "Logisk Operatør". |
evaluering | Det evaluerer både venstre og høyre side av uttrykket. | Det vurderer bare venstre side av uttrykket. |
Fungerer på | Den opererer på "Boolean datatype" så vel som opererer på "bits". | Den opererer bare på "boolsk datatype". |
Bruk | Bruk til å sjekke logisk tilstand og også brukes til å maskere bestemte biter som paritetsbiter. | Brukes kun for å sjekke logisk tilstand. |
Definisjon av & (bitwise AND)
Denne '&' operatøren brukes som begge, en logisk (&) operatør og en bitvis operatør. Den fungerer både på boolsk og binær data. Når & operatør brukes som logisk og operatør, resulterer det i "sant" hvis begge sider av uttrykket for evaluering er sanne, ellers returnerer det "false". Det gjør det mulig for kompilatoren å evaluere både siden av uttrykket. Det vil si at selv om venstre side av uttrykket resulterer i feil, vurderer den høyre side av uttrykket.
Lar oss forstå dette med et eksempel.
int a = 4, b = 5; system.out.println ((a == 6) & (b + + = 6)); system.out.println ("b =" + b); // utgang falsk b = 5
Her, når du vurderer venstre side av uttrykket (a == 6), resulterer det i feil, og & operatøren vurderer deretter høyre side av uttrykket (b + + = 6) som et resultat, øker verdien av b.
Når "&" brukes som en "bitwise operator" konverterer den først begge operandene til binær form og opererer deretter på den ved hjelp av og operatør, bit-by-bit. Etter operasjonen blir resultatet oppnådd i binær form, som deretter omdannes til desimal. Enhver bit som er 0 i en av operandene, resulterer i 0. Hvis begge bitene av operandene er 1, er den resulterende bit 1. Bitwise og operatøren styres av samme sannhetstabell som ved sin logiske og operatør.
La oss se bitwise drift av & operatør.
int a; a = 3 & 4; // 011 & 100 = 000 system.out.println ("a =" + a); // utgang a = 0
Her blir desimalverdien 3 og 4 i utgangspunktet konvertert til deres binære form, og deretter utfører & bitwise-operatøren operasjonen på dem bit-by-bit. Resultatet er i binær form, som deretter omdannes til desimalform igjen.
Definisjon av && (kortslutning og)
Denne &&-operatøren jobber helt som en logisk operatør. Den opererer bare på den boolske datatypen. Det kalles også kortslutningsoperatør. Som det bare kontrollerer venstre side av uttrykket. Hvis venstre side av uttrykket resulterer i feil, så bryter det seg ikke om å vurdere høyre side av uttrykket.
Lar oss forstå arbeidet til && operatøren med et eksempel.
int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // utgang falsk b = 4
Her, som betingelsen (a == 6) er feil, evaluerer &&-operatøren ikke uttrykket (b + + = 6) som et resultat, øker verdien av b ikke.
Nøkkelforskjeller mellom & og &&
- Operatøren er en logisk samt en bitvis operatør, da den fungerer både på boolesk og binær data, mens &&-operatøren bare er en logisk operatør, da den kun opererer på en boolsk datatype.
- Operatøren evaluerer begge sidene av uttrykket for å oppnå det endelige resultatet, mens && -operatøren bare evaluerer venstre side av uttrykket, og hvis det blir feil, vurderer det ikke engang høyre side av uttrykket.
Merk:
Under evalueringen av den boolske datatypen, resulterer begge operatørene bare i "sant" hvis begge operandene er sanne, ellers returnerer de "false".
Konklusjon:
& &&-operatøren, begge brukes til å evaluere den boolske tilstanden, mens & operatøren også brukes til bitvis operasjon. Når vi trenger å evaluere begge sider av uttrykket, er operatøren brukt ellers kan vi bruke && operatør.