Anbefalet, 2021

Redaktørens Valg

Forskel mellem & og &&

"&" Og "&&" begge er operatørerne, der bruges til at evaluere de betingede udsagn. Operatøren er en logisk såvel som en bitvis operatør. Operatøren && er udelukkende en logisk operatør. Den grundlæggende forskel mellem & & & operatoren er, at & operatøren vurderer begge sider af udtrykket, mens &&-operatøren kun evaluerer den venstre side af udtrykket for at opnå det endelige resultat. Lad os forstå de andre forskelle mellem & og && ved hjælp af sammenligningsdiagrammet.

Sammenligningstabel

Grundlag for sammenligning&&&
OperatørDet er en "Bitwise Operator".Det er en "Logisk Operatør".
EvalueringDet evaluerer både venstre og højre side af udtrykket.Det vurderer kun den venstre side af udtrykket.
Opererer påDen opererer på "Boolean datatype" såvel som opererer på "bits".Den fungerer kun på "Boolean datatype".
BrugBrug til at kontrollere logisk tilstand og bruges også til at maskere visse bits, såsom paritetsbitar.Bruges kun til at kontrollere logisk tilstand.

Definition af & (bitwise AND)

Denne '&' operatør bruges som begge, en logisk (&) operatør og en bitwise operatør. Det fungerer både på boolsk og binær data. Når & operatør bruges som logisk & operatør, resulterer det i "sandt", hvis begge sider af ekspressionsevalueringen er sande, ellers returneres det "false". Det gør det muligt for kompilatoren at evaluere begge sider af udtrykket. Det vil sige, selv om venstre side af udtrykket resulterer i falsk, vurderer den højre side af udtrykket.

Lad os forstå dette med et eksempel.

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

Ved evaluering af venstre side af udtrykket (a == 6) resulterer det i falsk, og & operatøren vurderer herefter højre side af udtrykket (b + + = 6) som følge heraf øges værdien af ​​b.

Når '&' bruges som en "bitwise operator" konverterer den først begge operandene til binær form og opererer derefter på den ved hjælp af & operatør, bit-by-bit. Efter operationen er resultatet opnået i binær form, som derefter omdannes til decimal. Enhver bit, der er 0 i en af ​​operandene, resulterer i 0. Hvis begge biterne i operanderne er 1, er den resulterende bit 1. Bitwise & operator styres af samme sandhedstabel som ved dens logiske og operatør.

Lad os se bitwise drift af & operatør.

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

Her konverteres decimalværdien 3 og 4 oprindeligt til deres binære form, og derefter udfører & bitwise operatøren & operationen på dem bit-by-bit. Resultatet opnås i binær form, som derefter omdannes til decimalform igen.

Definition af && (kortslutning og)

Denne && operatør arbejder helt som en logisk operatør. Den fungerer kun på den boolske datatype. Det kaldes også kortslutningsoperatør. Da det kun kontrollerer venstre side af udtrykket. Hvis venstre side af udtrykket resulterer i falsk, så bekymrer det sig ikke om at evaluere højre side af udtrykket.

Lad os forstå arbejdet hos && operatøren med et eksempel.

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

Her, som betingelsen (a == 6) er falsk, vurderer &&-operatøren ikke udtrykket (b + + = 6) som følge heraf øges værdien af ​​b ikke.

Nøgleforskelle mellem & og &&

  1. & Operatøren er en logisk såvel som en bitvis operatør, da den fungerer både på boolsk og binær data, mens &&-operatøren kun er en logisk operatør, da den kun opererer på en boolesk datatype.
  2. & Operatøren vurderer begge sider af udtrykket for at opnå det endelige resultat, mens &&-operatøren kun evaluerer venstre side af udtrykket & hvis det viser sig falsk, vurderer det ikke ens ekspressions højre side.

Bemærk:

Under evalueringen af ​​den boolske datatype er begge operatører kun "sande", hvis begge operandene er sande, ellers returnerer de "falske".

Konklusion:

Operatøren & og &&, begge bruges til at evaluere den booleanske tilstand, mens & operatøren også bruges til bitvis drift. Når vi har brug for at evaluere begge sider af udtrykket, er & operatøren brugt ellers kan vi bruge && operatøren.

Top