I det här avsnittet kommer vi att diskutera de två viktigaste operatörerna & och && i Java och se även viktiga skillnader mellan logiska och bitvisa operatorer tillsammans med dess användningsområden.
& Operatör
Den enda AND-operatorn ( & ) är känd som Bitvis OCH operatör. Den fungerar på en enda bit. Det krävs två operander. En bit i resultatet är 1 om och endast om båda motsvarande bitar i operanderna är 1. Resultatet av operatorn kan vara vilket tal som helst. Till exempel:
a = 01100010
b = 10111010
a&b = 00100010
&& Operatör
De dubbla OCH-operatorerna (&&) är kända som logiskt OCH operatörer. Det används vanligtvis i loopar och villkorliga uttalanden. Det används vanligtvis i booleska uttryck. Resultatet av && är alltid 0 eller 1.
Skillnaden mellan & och &&
Den viktigaste skillnaden mellan && och & operatörer är att && stöder kortslutningsutvärderingar medan & operatör inte gör det.
En annan skillnad är att && kommer att utvärdera uttrycket exp1 och omedelbart returnera ett falskt värde om exp1 är falskt. Medan &-operatorn utvärderar alltid båda uttrycken (exp1 och exp2) innan ett svar återkallas.
S.N. | Grund | & Operatör | && Operatör |
---|---|---|---|
1 | Operatör | Det är en bitvis OCH-operatör. | Det är en logisk OCH-operator. |
2 | Utvärdering | Den utvärderar både vänster och höger sida av det givna uttrycket. | Den utvärderar bara vänstersidorna av det givna uttrycket. |
3 | Verkar på | Det fungerar på booleska datatyper såväl som på bitar. | Den fungerar endast på boolesk datatyp. |
4 | Används | Används för att kontrollera logiskt tillstånd och används även för att maskera vissa bitar som paritetsbitar. | Används endast för att kontrollera de logiska förhållandena. |
5 | Exempel | z = x & y | if (y > 1 && y > x) |
Låt oss förstå bitvis och logisk och operatör genom ett Java-program.
LogicalAndExample.java
linux byta namn på katalogen
public class LogicalAndExample { public static void main(String args[]) { int a=10, b=20; if (a == 10 && b == 20) System.out.println('true'); else System.out.println('false'); int c=78, d=90; if (a > c && b <d) system.out.println('true'); else system.out.println('false'); } < pre> <p> <strong>Output:</strong> </p> <pre> true false </pre> <p> <strong>BitwiseAndExample.java</strong> </p> <pre> public class BitwiseAndExample { public static void main(String args[]) { int a = 3; int b = 9; //bitwise AND System.out.println('a&b = ' + (a & b)); } } </pre> <p> <strong>Output:</strong> </p> <pre> a&b=1 </pre> <p>Let's create another Java program and use Logical and Bitwise AND operators simultaneously.</p> <p> <strong>JavaOperators.java</strong> </p> <pre> public class JavaOperators { public static void main(String args[]) { int a = 58; //58 in binary is 111010 int b = 13; //13 in binary is 1101 System.out.println(a&b); //returns 8 = 1000 int x = 10; System.out.println(x<30 && x<60); returns false } < pre> <p> <strong>Output:</strong> </p> <pre> 8 true </pre> <hr></30></pre></d)>
BitwiseAndExample.java
public class BitwiseAndExample { public static void main(String args[]) { int a = 3; int b = 9; //bitwise AND System.out.println('a&b = ' + (a & b)); } }
Produktion:
a&b=1
Låt oss skapa ett annat Java-program och använda logiska och Bitwise AND-operatorer samtidigt.
JavaOperators.java
public class JavaOperators { public static void main(String args[]) { int a = 58; //58 in binary is 111010 int b = 13; //13 in binary is 1101 System.out.println(a&b); //returns 8 = 1000 int x = 10; System.out.println(x<30 && x<60); returns false } < pre> <p> <strong>Output:</strong> </p> <pre> 8 true </pre> <hr></30>
30>