În Java, an operator este un simbol care efectuează operațiunile specificate. În această secțiune, vom discuta doar despre operator pe biți și tipurile acestuia cu exemple potrivite.
Tipuri de operator pe biți
Există șase tipuri de operator pe biți în Java:
- ȘI pe biți
- SAU exclusiv pe biți
- SAU inclusiv pe biți
- Compliment pe biți
- Operatori Bit Shift
Operatori | Simbol | Utilizări |
---|---|---|
ȘI pe biți | & | op1 și op2 |
SAU exclusiv pe biți | ^ | op1 ^ op2 |
SAU inclusiv pe biți | | | op1 | op2 |
Compliment pe biți | ~ | ~ op |
Deplasare la stânga pe biți | << | op1 << op2 |
Deplasare pe biți la dreapta | >> | op1 >> op2 |
Operator de schimbare la dreapta nesemnat | >>> pe >>> | numărul de locuri de mutat |
Să explicăm în detaliu operatorul pe biți.
ȘI pe biți (&)
Este un operator binar notat cu simbolul & . Returnează 1 dacă și numai dacă ambii biți sunt 1, altfel returnează 0.
Să folosim operatorul AND pe biți într-un program Java.
este
BitwiseAndExample.java
public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 & 1000 = 1000 = 8 System.out.println('x & y = ' + (x & y)); } }
Ieșire
x & y = 8
SAU exclusiv pe biți (^)
Este un operator binar notat cu simbolul ^ (pronunțat ca caret). Returnează 0 dacă ambii biți sunt aceiași, altfel returnează 1.
Să folosim operatorul OR exclusiv pe biți într-un program Java.
BitwiseXorExample.java
public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println('x ^ y = ' + (x ^ y)); } }
Ieșire
x ^ y = 1
SAU inclusiv pe biți (|)
Este un operator binar notat cu simbolul | (pronunțat ca o țeavă). Returnează 1 dacă oricare dintre biți este 1, altfel returnează 0.
Să folosim operatorul OR inclusiv pe biți într-un program Java.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (x }
Ieșire
x | y = 9
Complement pe biți (~)
Este un operator unar notat cu simbolul ~ (pronunțat ca tilde). Returnează inversul sau complementul bitului. Face fiecare 0 un 1 și fiecare 1 un 0.
derivat parțial latex
Să folosim operatorul complement pe biți într-un program Java.
BitwiseComplimentExample.java
public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println('~x = ' + (~x)); } }
Ieșire
~x = -3
Operatori Bit Shift
Operatorul Shift este folosit pentru deplasarea biților fie la dreapta, fie la stânga. Putem folosi operatori de deplasare dacă împărțim sau înmulțim orice număr cu 2. Formatul general de deplasare a bitului este următorul:
variable <> number of places to shift;
De exemplu, dacă a=10
a>>2; //shifts two bits a>>4; //shifts 4 bits
Java oferă următoarele tipuri de operatori de schimbare:
- Operator de schimbare la dreapta semnat sau operator de schimbare la dreapta pe biți
- Operator de schimbare la dreapta nesemnat
- Operator de schimbare la stânga semnat sau operator de schimbare la stânga pe biți
Notă: Java nu acceptă operatorul de schimbare la stânga nesemnat (<<<).< h4> Operator de schimbare la dreapta semnat (>>)
Operatorul de schimbare la dreapta semnat mută un model de biți al unui număr către dreapta cu un număr specificat de poziții și umple 0. Operatorul este notat cu simbolul >>. De asemenea, păstrează bitul din stânga (bit de semn). Dacă 0 este prezentat în partea din stânga, înseamnă că numărul este pozitiv . Dacă 1 este prezentat în partea din stânga, înseamnă că numărul este negativ .
În general, dacă scriem a>>n, înseamnă deplasarea biților unui număr spre dreapta cu o poziție specificată (n). În termeni de matematică, putem reprezenta operatorul de deplasare la dreapta cu semn după cum urmează:
Notă: Când aplicăm operatorul de deplasare la dreapta pe un număr pozitiv, obținem și numărul pozitiv în rezultat. În mod similar, când aplicăm operatorul de deplasare la dreapta pe un număr negativ, obținem și numărul negativ în rezultat.
Exemplu: Aplicați operatorul de deplasare la dreapta semnat cu pozițiile specificate 4 dacă x = 256 și x = -256.
Dacă x = 256
256 >> 4
256/24= 16
Dacă x = -256
-256 >> 4
-256/24= -16
În exemplul de mai sus, am observat că după deplasare operatorul 256 este convertit în 16 și -256 convertit în -16.
Să creăm un program Java și să implementăm operatorul de schimbare la stânga.
SignedRightShiftOperatorExample.java
public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println('x>>2 = ' + (x >>2)); } }
Ieșire
x>>2 = 12
Operator de schimbare la stânga semnat (<<)< strong> )<>
Operatorul de schimbare la stânga semnat (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>De asemenea, păstrează bitul din stânga (bit de semn). Nu păstrează bitul de semn.)>
În general, dacă scriem a< Exemplul 1: Care va fi rezultatul după schimbarea a<<3. the value of a is 20.< strong> 3.> Reprezentarea lui 20 în binar este = 00010100 După efectuarea operatorului de schimbare la stânga, obținem: a << 3 = 10100000 (ultimii trei biți sunt biții umpluți) a << 3 = 160 Să verificăm rezultatul folosind formula. 20 << 3 20*23= 20*8 = 160 Exemplul 2: Care va fi rezultatul după schimbarea a<<2. the value of a is -10.< strong> 2.> Reprezentarea lui -10 în binar este = 11110110 a<<2 11011000='<strong' =>-402> Să verificăm rezultatul folosind formula. -10 << 3 -10*22= -10*4 = -40 Să creăm un program Java și să implementăm operatorul de schimbare la stânga semnat. SignedLeftShiftOperatorExample.java Ieșire dactilografiat data ora
xor în java
public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println('x<<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x<<1 24 = < pre> <h3>Unsigned Right Shift Operator (>>>)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>>>>.</strong> Note that the leftmost position after >> depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a>>>b?</strong> </p> <p>a >>> b = 11110000 >>> 2 = <strong>00111100</strong> </p> <p>The left operand value is moved right by the number of bits specified by the right operand and the shifted bits are filled up with zeros. Excess bits shifted off to the right are discarded.</p> <p>Therefore, before shifting the bits the decimal value of a is 240, and after shifting the bits the decimal value of a is 60.</p> <p>Let's create a Java program and use the unsigned right shift operator.</p> <p> <strong>UnsignedRightShiftOperatorExample.java</strong> </p> <pre> public class UnsignedRightShiftOperatorExample { public static void main(String args[]) { int x = 20; System.out.println('x>>>2 = ' + (x >>>2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x>>>2 = 5 </pre> <hr></1></pre></1>
x>>>2 = 5
1>1>