Rekommenderas, 2021

Redaktionen

Skillnad mellan & och &&

"&" Och "&&" båda är operatörerna, som används för att utvärdera de villkorliga uttalandena. Operatören är en logisk såväl som en bitvis operatör. Operatören && är rent logisk operatör. Den grundläggande skillnaden mellan operatören & && är att & operatören utvärderar båda sidor av uttrycket medan &&-operatören utvärderar endast den vänstra sidan av uttrycket för att få slutresultatet. Låt oss förstå de andra skillnaderna mellan & och && med hjälp av jämförelsetabellen.

Jämförelsediagram

Grunder för jämförelse&&&
OperatörDet är en "Bitwise Operator".Det är en "Logisk Operatör".
UtvärderingDet utvärderar både vänster och höger sida av uttrycket.Det utvärderar bara den vänstra sidan av uttrycket.
Fungerar påDen fungerar på "Boolean datatype" såväl som fungerar på "bitar".Den fungerar endast på "Boolean datatype".
Använda sig avAnvänd för att kontrollera logiskt tillstånd och även användas för att maskera vissa bitar, såsom paritetsbitar.Används endast för att kontrollera logiskt tillstånd.

Definition av & (bitwise AND)

Denna "&" operatör används som både, en logisk (&) operatör och en bitvis operatör. Det fungerar både på booleska och binära data. När & operatör används som en logisk & operatör, resulterar det i "sant" om båda sidorna av uttrycket av utvärdering är sanna, annars returnerar det "false". Det gör det möjligt för kompilatorn att utvärdera både sidan av uttrycket. Det vill säga, även om den vänstra sidan av uttrycket resulterar i falskt, utvärderar den högra sidan av uttrycket.

Låt oss förstå detta med ett exempel.

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

Här, vid utvärdering av vänster sida av uttrycket (a == 6), resulterar det i falskt, och & operatören utvärderar sedan höger sida av uttrycket (b + + = 6) som ett resultat, värdet av b ökar.

När "&" används som en "bitwise operator" konverterar den först båda operanderna till binär form och arbetar sedan på den med & operatör, bit-by-bit. Efter operationen erhålls resultatet i binär form, som sedan omvandlas till decimal. Vilken bit som helst är 0 i någon av operanderna resulterar i 0. Om båda bitarna i operandorna är 1, är den resulterande biten 1. Bitvis och operatören styrs av samma sanningstabell som av dess logiska och operatör.

Låt oss se bitoperationen av & operatören.

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

Här omvandlas decimalvärdet 3 och 4 initialt till sin binära form, och sedan utför den & bitwise operatören & operationen på dem bit-by-bit. Resultatet erhålls i binär form, som sedan omvandlas till decimalform igen.

Definition av && (kortslutning OCH)

Denna &&-operatör arbetar helt som en logisk operatör. Den fungerar endast på den booleska datatypen. Det kallas också kortslutningsoperatör. Eftersom det bara kontrollerar den vänstra sidan av uttrycket. Om den vänstra sidan av uttrycket resulterar i falskt, stör det inte om att utvärdera höger sida av uttrycket.

Låt oss förstå verksamheten hos &&-operatören med ett exempel.

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

Här, som villkoret (a == 6) är falskt, utvärderar && -operatören inte uttrycket (b ++ == 6) som ett resultat, värdet på b ökar inte.

Viktiga skillnader mellan & och &&

  1. Operatören är en logisk såväl som en bitvis operatör, eftersom den fungerar både på booleska och binära data medan && -operatören endast är en logisk operatör eftersom den endast fungerar på en booleskt datatyp.
  2. & Operatören utvärderar både sidan av uttrycket för att få det slutliga resultatet medan && -operatören utvärderar endast den vänstra sidan av uttrycket & om det visar sig falskt utvärderas inte ens höger sida av uttrycket.

Notera:

Under utvärderingen av den booleska datatypen, resulterar båda operatörerna bara "sanna" om både operand är sann, annars returnerar den "false".

Slutsats:

Operatören & och &&, båda används för att utvärdera det booleska tillståndet medan & operatören också används för bitvis operation. När vi behöver att utvärdera både sidan av uttrycket som användaren är använd annars kan vi använda && operatören.

Top