U Javi, an operater je simbol koji izvodi navedene operacije. U ovom odjeljku raspravljat ćemo samo o bitni operator i njegove vrste s pravilnim primjerima.
Vrste bitnih operatora
U Javi postoji šest tipova bitovnog operatora:
- Bitno I
- Bitno isključivi OR
- Uključivo ILI po bitovima
- Bitwise kompliment
- Operatori pomaka bitova
Operatori | Simbol | Koristi |
---|---|---|
Bitno I | i | op1 & op2 |
Bitno isključivi OR | ^ | op1 ^ op2 |
Uključivo ILI po bitovima | | | op1 | op2 |
Bitwise kompliment | ~ | ~ op |
Pomak ulijevo po bitovima | << | op1 << op2 |
Desni pomak po bitovima | >> | op1 >> op2 |
Nepredpisani operator desnog pomaka | >>> na >>> | broj mjesta za pomicanje |
Objasnimo detaljno bitovni operator.
Bitno I (&)
To je binarni operator označen simbolom i . Vraća 1 ako i samo ako su oba bita 1, inače vraća 0.
Upotrijebimo operator AND po bitovima u Java programu.
glumac zeenat aman
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)); } }
Izlaz
x & y = 8
Bitno isključivi ILI (^)
To je binarni operator označen simbolom ^ (izgovara se kao karet). Vraća 0 ako su oba bita ista, inače vraća 1.
Upotrijebimo bitovno isključivi OR operator u Java programu.
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)); } }
Izlaz
x ^ y = 1
Bitno uključivo ILI (|)
To je binarni operator označen simbolom | (izgovara se kao lula). Vraća 1 ako je bilo koji od bitova 1, inače vraća 0.
Upotrijebimo bit-inkluzivni OR operator u Java programu.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (x }
Izlaz
x | y = 9
Bitni komplement (~)
To je unarni operator označen simbolom ~ (izgovara se kao tilda). Vraća inverziju ili komplement bita. Svaki 0 čini 1, a svaki 1 0.
lisica protiv vuka
Upotrijebimo bitni operator komplementa u Java programu.
BitwiseComplimentExample.java
public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println('~x = ' + (~x)); } }
Izlaz
~x = -3
Operatori pomaka bitova
Operator pomaka koristi se za pomicanje bitova desno ili lijevo. Operatore pomaka možemo koristiti ako bilo koji broj podijelimo ili pomnožimo s 2. Opći format za pomak bita je sljedeći:
variable <> number of places to shift;
Na primjer, ako je a=10
a>>2; //shifts two bits a>>4; //shifts 4 bits
Java nudi sljedeće vrste operatora pomaka:
- Operator desnog pomaka s predznakom ili bitni operator desnog pomaka
- Nepredpisani operator desnog pomaka
- Predpisani operator lijevog pomaka ili bitovni operator lijevog pomaka
Napomena: Java ne podržava nepredpisani operator lijevog pomaka (<<<).< h4> Desni operator pomaka s predznakom (>>)
Operator desnog pomaka s predznakom pomiče bitni uzorak broja prema pravo sa zadanim brojem pozicija i popunjava 0. Operator je označen simbolom >>. Također čuva krajnji lijevi bit (bit predznaka). Ako 0 je predstavljen na krajnjem lijevom bitu, to znači da je broj pozitivan . Ako 1 je predstavljen na krajnjem lijevom bitu, to znači da je broj negativan .
Općenito, ako napišemo a>>n, to znači pomaknuti bitove broja udesno s određenim položajem (n). U smislu matematike, možemo predstaviti operator desnog pomaka s predznakom na sljedeći način:
Napomena: Kada primijenimo operator desnog pomaka na pozitivan broj, također ćemo dobiti pozitivan broj u rezultatu. Slično, kada primijenimo operator desnog pomaka na negativan broj, također ćemo dobiti negativan broj u rezultatu.
Primjer: Primijenite operator desnog pomaka s predznakom s navedenim pozicijama 4 ako je x = 256 i x = -256.
Ako je x = 256
256 >> 4
kako otvoriti datoteku s javom
256/24= 16
Ako je x = -256
-256 >> 4
-256/24= -16
U gornjem primjeru primijetili smo da se nakon pomaka operator 256 pretvara u 16, a -256 pretvara u -16.
Kreirajmo Java program i implementirajmo operator lijevog pomaka.
SignedRightShiftOperatorExample.java
public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println('x>>2 = ' + (x >>2)); } }
Izlaz
x>>2 = 12
Lijevi operator pomaka s predznakom (<<)< strong> )<>
Predpisani operator lijevog pomaka (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Također čuva krajnji lijevi bit (bit predznaka). Ne čuva bit predznaka.)>
Općenito, ako napišemo a< Primjer 1: Kakav će biti rezultat nakon pomaka a<<3. the value of a is 20.< strong> 3.> Predstavljanje broja 20 u binarnom obliku je = 00010100 Nakon izvođenja operatora lijevog pomaka dobivamo: a << 3 = 10100000 (zadnja tri bita su popunjeni bitovi) a << 3 = 160 Provjerimo rezultat pomoću formule. 20 << 3 20*23= 20*8 = 160 Primjer 2: Kakav će biti rezultat nakon pomaka a<<2. the value of a is -10.< strong> 2.> Predstavljanje -10 u binarnom obliku je = 11110110 a<<2 11011000='<strong' =>-402> Provjerimo rezultat pomoću formule. -10 << 3 -10*22= -10*4 = -40 Kreirajmo Java program i implementirajmo operator lijevog pomaka s predznakom. SignedLeftShiftOperatorExample.java Izlaz niz json 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>