V Javi je an operater je simbol, ki izvaja določene operacije. V tem razdelku bomo obravnavali samo bitni operator in njegove vrste z ustreznimi primeri.
Vrste bitnega operaterja
V Javi je šest vrst bitnih operatorjev:
- Bitno IN
- Bitno izključujoč ALI
- Bitno vključujoč ALI
- Bitni kompliment
- Operatorji bitnega premika
Operaterji | Simbol | Uporabe |
---|---|---|
Bitno IN | & | op1 & op2 |
Bitno izključujoč ALI | ^ | op1 ^ op2 |
Bitno vključujoč ALI | | | op1 | op2 |
Bitni kompliment | ~ | ~ op |
Bitni premik v levo | << | op1 << op2 |
Bitni premik v desno | >> | op1 >> op2 |
Nepodpisani operator desnega premika | >>> na >>> | število mest za premik |
Podrobno razložimo bitni operator.
Bitno IN (&)
Je binarni operator, označen s simbolom & . Vrne 1, če in samo če sta oba bita 1, sicer vrne 0.
Uporabimo bitni operator IN v programu Java.
kaj to pomeni xd
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)); } }
Izhod
x & y = 8
Bitno izključujoči ALI (^)
Je binarni operator, označen s simbolom ^ (izgovarja se kot kazalec). Če sta oba bita enaka, vrne 0, sicer vrne 1.
Uporabimo bitni izključni operator ALI v programu 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)); } }
Izhod
x ^ y = 1
Bitno vključujoče ALI (|)
Je binarni operator, označen s simbolom | (izgovarja se kot cev). Vrne 1, če je kateri koli od bitov 1, sicer vrne 0.
Uporabimo bitni inkluzivni operator ALI v programu Java.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (x }
Izhod
x | y = 9
Bitni komplement (~)
Je unarni operator, označen s simbolom ~ (izgovarja se kot tilda). Vrne inverzijo ali komplement bita. Vsaka 0 je 1 in vsaka 1 je 0.
omejitve e-bančništva
Uporabimo operator bitnega komplementa v programu 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)); } }
Izhod
~x = -3
Operatorji bitnega premika
Operator premika se uporablja za premikanje bitov desno ali levo. Operatorje premika lahko uporabimo, če poljubno število delimo ali pomnožimo z 2. Splošni format za premik bita je naslednji:
variable <> number of places to shift;
Na primer, če je a=10
a>>2; //shifts two bits a>>4; //shifts 4 bits
Java ponuja naslednje vrste operaterjev premika:
- Operator desnega premika s predznakom ali bitni operator desnega premika
- Nepodpisani operator desnega premika
- Predznačeni levi operator ali bitni levi operator
Opomba: Java ne podpira nepodpisanega operatorja levega premika (<<<).< h4> Podpisani operator desnega premika (>>)
Operator podpisanega desnega premika premakne bitni vzorec števila proti prav z določenim številom pozicij in zapolni 0. Operator je označen s simbolom >>. Ohrani tudi skrajni levi bit (bit predznaka). če 0 je prikazano na skrajnem levem bitu, to pomeni, da je število pozitivno . če 1 je prikazano na skrajnem levem bitu, to pomeni, da je število negativno .
Na splošno, če zapišemo a>>n, to pomeni premik bitov števila proti desni z določenim položajem (n). Z matematičnega vidika lahko predstavimo operator desnega premika s predznakom na naslednji način:
Opomba: Ko uporabimo operator desnega premika na pozitivno število, dobimo pozitivno število tudi v rezultatu. Podobno, ko uporabimo operator desnega premika na negativno število, dobimo negativno število tudi v rezultatu.
Primer: uporabite predpisani operator desnega premika z določenimi položaji 4, če je x = 256 in x = -256.
Če je x = 256
256 >> 4
256/24= 16
Če je x = -256
-256 >> 4
-256/24= -16
V zgornjem primeru smo opazili, da se je po prestavitvi operator 256 pretvoril v 16, -256 pa v -16.
Ustvarimo program Java in implementirajmo levi operater premika.
SignedRightShiftOperatorExample.java
public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println('x>>2 = ' + (x >>2)); } }
Izhod
x>>2 = 12
Podpisani levi operator premika (<<)< strong> )<>
Podpisani levi operator premika (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Ohrani tudi skrajni levi bit (bit predznaka). Predznakovnega bita ne ohrani.)>
Na splošno, če napišemo a< Primer 1: Kakšen bo rezultat po prestavitvi a<<3. the value of a is 20.< strong> 3.> Predstavitev 20 v binarni obliki je = 00010100 Po izvedbi levega operaterja premika dobimo: a << 3 = 10100000 (zadnji trije biti so zapolnjeni biti) a << 3 = 160 Preverimo rezultat s pomočjo formule. 20 << 3 20*23= 20*8 = 160 Primer 2: Kakšen bo rezultat po prestavitvi a<<2. the value of a is -10.< strong> 2.> Predstavitev -10 v binarni obliki je = 11110110 a<<2 11011000='<strong' =>-402> Preverimo rezultat s pomočjo formule. -10 << 3 -10*22= -10*4 = -40 Ustvarimo program Java in implementirajmo podpisani levi operator premika. SignedLeftShiftOperatorExample.java Izhod kako pretvoriti niz v char
ymail
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>