logo

Operator pe biți în Java

Î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.

Operator pe biți în Java

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 &amp; 1000 = 1000 = 8 System.out.println(&apos;x &amp; y = &apos; + (x &amp; y)); } } 

Ieșire

 x &amp; 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.

Operator pe biți în Java

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(&apos;x ^ y = &apos; + (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.

Operator pe biți în Java

Să folosim operatorul OR inclusiv pe biți într-un program Java.

BitwiseInclusiveOrExample.java

 public class BitwiseInclusiveOrExample { public static void main(String[] args) y = &apos; + (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
Operator pe biți în Java

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(&apos;~x = &apos; + (~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 &lt;&gt; number of places to shift; 

De exemplu, dacă a=10

 a&gt;&gt;2; //shifts two bits a&gt;&gt;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ă:

Operator pe biți în Java

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(&apos;x&gt;&gt;2 = &apos; + (x &gt;&gt;2)); } } 

Ieșire

 x&gt;&gt;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< Operator pe biți în Java

Exemplul 1: Care va fi rezultatul după schimbarea a<<3. the value of a is 20.< strong>

Reprezentarea lui 20 în binar este = 00010100

După efectuarea operatorului de schimbare la stânga, obținem:

dactilografiat data ora

a << 3 = 10100000 (ultimii trei biți sunt biții umpluți)

xor în java

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>

Reprezentarea lui -10 în binar este = 11110110

a<<2 11011000='<strong' =>-40

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

 public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println(&apos;x&lt;<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x&lt;<1 24 = < pre> <h3>Unsigned Right Shift Operator (&gt;&gt;&gt;)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>&gt;&gt;&gt;.</strong> Note that the leftmost position after &gt;&gt; depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a&gt;&gt;&gt;b?</strong> </p> <p>a &gt;&gt;&gt; b = 11110000 &gt;&gt;&gt; 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&apos;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(&apos;x&gt;&gt;&gt;2 = &apos; + (x &gt;&gt;&gt;2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x&gt;&gt;&gt;2 = 5 </pre> <hr></1></pre></1>

Ieșire

 x&gt;&gt;&gt;2 = 5