logo

Bitu operatori Java


Operatori ir jebkuras programmēšanas valodas pamatelements. Arī Java nodrošina daudzu veidu operatorus, kurus var izmantot atkarībā no nepieciešamības veikt dažādus aprēķinus un funkcijas, neatkarīgi no tā, vai tie ir loģiski, aritmētiski, relāciju utt. Tie tiek klasificēti, pamatojoties uz to sniegto funkcionalitāti. Šeit ir daži veidi:

  1. Aritmētiskie operatori
  2. Unārie operatori
  3. Uzdevuma operators
  4. Relāciju operatori
  5. Loģiskie operatori
  6. Trīskāršs operators
  7. Bitu operatori
  8. Maiņu operatori

Šajā rakstā ir izskaidrots viss, kas jāzina par Bitwise operatoriem.

Bitu operatori

Bitu operatori tiek izmantoti, lai veiktu manipulācijas ar atsevišķiem skaitļa bitiem. Tos var izmantot ar jebkuru integrālo veidu (char, short, int utt.). Tie tiek izmantoti, veicot bināro indeksēto koku atjaunināšanas un vaicājumu darbības.



Tagad apskatīsim katru Java bitu operatoru:

1. Bitveida VAI (|)

Šis operators ir binārs operators, kas apzīmēts ar “|”. Tas atgriež pa bitiem VAI ievades vērtības, t.i., ja kāds no bitiem ir 1, tas dod 1, pretējā gadījumā tas parāda 0.

Piemērs:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise OR Operation of 5 and 7  0101 | 0111  ________  0111 = 7 (In decimal)>

2. Bitveida UN (&)

Šis operators ir binārs operators, kas apzīmēts ar “&”. Tas atgriež ievades vērtības pa bitiem UN, t.i., ja abi biti ir 1, tas dod 1, pretējā gadījumā tas parāda 0.

Piemērs:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise AND Operation of 5 and 7  0101 & 0111  ________  0101 = 5 (In decimal)>

3. Bitu XOR (^)

Šis operators ir binārs operators, kas apzīmēts ar “^”. Tas atgriež ievades vērtības pa bitiem XOR, t.i., ja attiecīgie biti atšķiras, tas dod 1, pretējā gadījumā parāda 0.

Piemērs:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise XOR Operation of 5 and 7  0101 ^ 0111  ________  0010 = 2 (In decimal)>

4. Bitu papildinājums (~)

Šis operators ir unārs operators, kas apzīmēts ar “~”. Tas atgriež ievades vērtības viena komplementa attēlojumu, t.i., ar apgrieztiem bitiem, kas nozīmē, ka tas veido katru no 0 līdz 1 un katru no 1 līdz 0.

Piemērs:

a = 5 = 0101 (In Binary)  Bitwise Complement Operation of 5  ~ 0101  ________  1010 = 10 (In decimal)>

Piezīme: Kompilators dos šī skaitļa 2 papildinājumu, t.i., 2 papildinājums 10 būs -6.

Java
// Java program to illustrate // bitwise operators public class operators {  public static void main(String[] args)   b));  // bitwise xor  // 0101 ^ 0111=0010 = 2  System.out.println('a^b = ' + (a ^ b));  // bitwise not  // ~00000000 00000000 00000000 00000101=11111111 11111111 11111111 11111010  // will give 2's complement (32 bit) of 5 = -6  System.out.println('~a = ' + ~a);  // can also be combined with  // assignment operator to provide shorthand  // assignment  // a=a&b  a &= b;  System.out.println('a= ' + a);   }>

Izvade
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

Palīgtelpa: O(1)

Laika sarežģītība: O(1)

Java
// Demonstrating the bitwise logical operators class GFG {  public static void main (String[] args) {    String binary[]={  '0000','0001','0010','0011','0100','0101',  '0110','0111','1000','1001','1010',  '1011','1100','1101','1110','1111'  };    // initializing the values of a and b   int a=3; // 0+2+1 or 0011 in binary  int b=6; // 4+2+0 or 0110 in binary    // bitwise or  int c= a | b;    // bitwise and  int d= a & b;    // bitwise xor  int e= a ^ b;    // bitwise not  int f= (~a & b)|(a &~b);  int g= ~a & 0x0f;      System.out.println(' a= '+binary[a]);  System.out.println(' b= '+binary[b]);  System.out.println(' a|b= '+binary[c]);  System.out.println(' a&b= '+binary[d]);  System.out.println(' a^b= '+binary[e]);  System.out.println('~a & b|a&~b= '+binary[f]);  System.out.println('~a= '+binary[g]);  } }>

Izvade
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

Bitu maiņu operatori (maiņu operatori)

Shift operatori tiek izmantoti, lai pārvietotu skaitļa bitus pa kreisi vai pa labi, tādējādi attiecīgi reizinot vai dalot skaitli ar divi. Tos var izmantot, ja mums ir jāreizina vai jādala skaitlis ar divi.

Sintakse:

 number   shift_op   number_of_places_to_shift;>

Maiņu operatoru veidi:

Maiņu operatori tiek iedalīti 4 veidos. Šie ir:

1 no 1000
  1. Parakstīts labās maiņas operators (>>)
  2. Neparakstīts labās maiņas operators (>>>)
  3. Kreisās maiņas operators (<<)
  4. Neparakstīts kreisās maiņas operators (<<<)

Piezīme: Plašāku informāciju par Java Shift operatoriem skatiet Shift Operator Java .

programma, lai ieviestu visus Bitwise operatorus java lietotāja ievadei

Java
import java.util.Scanner; public class BitwiseOperators {  public static void main(String[] args)   Scanner input = new Scanner(System.in);  System.out.print('Enter first number: ');  int num1 = input.nextInt();  System.out.print('Enter second number: ');  int num2 = input.nextInt();  System.out.println('Bitwise AND: ' + (num1 & num2));  System.out.println('Bitwise OR: ' + (num1  }>

Ievade

Enter first number: 4 Enter second number: 8>

Izvade

Bitwise AND: 0 Bitwise OR: 12 Bitwise XOR: 12 Bitwise NOT: -5 Bitwise Left Shift: 16 Bitwise Right Shift: 1 Bitwise Unsigned Right Shift: 1>

Paskaidrojums

Šī programma liek lietotājam ievadīt divus skaitļus, num1 un num2. Pēc tam tas veic šādas bitu operācijas, izmantojot operatorus &, |, ^, ~, <> un>>>:

Bitu UN
Bitu virzienā VAI
Bitu XOR
Bitu veidā NAV
Bitu pa kreisi Shift
Bitu pa labi Shift
Bitu pagrieziena nulles aizpildīšanas labā maiņa

Priekšrocības

Bitwise operatoru izmantošanas priekšrocības Java ir šādas:

  1. Ātrums: Bitu darbības ir daudz ātrākas nekā aritmētiskās darbības, jo tās darbojas tieši uz skaitļu binārajiem attēlojumiem.
  2. Kosmosa optimizācija: Bitu darbības var izmantot, lai vienā mainīgajā saglabātu vairākas vērtības, kas var būt noderīgi, strādājot ar ierobežotu atmiņu.
  3. Bitu manipulācijas: Bitu operatori ļauj precīzi kontrolēt atsevišķus skaitļa bitus, kas var būt noderīgi dažādās lietojumprogrammās, piemēram, kriptogrāfijā, kļūdu noteikšanā un saspiešanā.
  4. Koda vienkāršošana : Bitu darbības var vienkāršot kodu, samazinot nosacījumu priekšrakstu un cilpu skaitu, kas nepieciešami noteiktu uzdevumu veikšanai.

Rezumējot, Bitwise operatori ir svarīgs rīks veiktspējas optimizēšanai, koda lasāmības uzlabošanai un koda sarežģītības samazināšanai Java lietojumprogrammās.