logo

Bitwise-operaattorit Javassa


Operaattorit ovat minkä tahansa ohjelmointikielen perusrakennuspalikka. Myös Java tarjoaa monenlaisia ​​operaattoreita, joita voidaan käyttää erilaisten laskutoimitusten ja toimintojen suorittamistarpeen mukaan, oli se sitten loogista, aritmeettista, relaatiota jne. Ne luokitellaan niiden tarjoamien toimintojen perusteella. Tässä on muutamia tyyppejä:

  1. Aritmeettiset operaattorit
  2. Yksittäiset operaattorit
  3. Tehtäväoperaattori
  4. Relaatiooperaattorit
  5. Loogiset operaattorit
  6. Kolmiosainen operaattori
  7. Bittikohtaiset operaattorit
  8. Vuorooperaattorit

Tämä artikkeli selittää kaiken, mitä sinun on tiedettävä Bitwise-operaattoreista.

Bittikohtaiset operaattorit

Bittioperaattoreita käytetään suorittamaan luvun yksittäisten bittien käsittelyä. Niitä voidaan käyttää minkä tahansa integraalityypin kanssa (char, short, int jne.). Niitä käytetään suoritettaessa binaaristen indeksoitujen puiden päivitys- ja kyselytoimintoja.



Katsotaan nyt jokaista Java-bittioperaattoria:

1. Bittikohtainen TAI (|)

Tämä operaattori on binäärioperaattori, joka on merkitty '|'. Se palauttaa syöttöarvoja bitti bitiltä TAI, eli jos jompikumpi biteistä on 1, se antaa 1, muuten se näyttää 0.

Esimerkki:

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

2. Bittikohtainen JA (&)

Tämä operaattori on binäärioperaattori, jota merkitään '&'. Se palauttaa syöttöarvoja bitti bitiltä AND, eli jos molemmat bitit ovat 1, se antaa 1, muuten se näyttää 0.

Esimerkki:

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

3. Bittikohtainen XOR (^)

Tämä operaattori on binäärioperaattori, jota merkitään '^'lla. Se palauttaa syöttöarvoja bitti bitiltä XOR, eli jos vastaavat bitit ovat erilaisia, se antaa arvon 1, muuten se näyttää 0:n.

Esimerkki:

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

4. Bitittainen täydennys (~)

Tämä operaattori on unaarinen operaattori, jota merkitään '~'. Se palauttaa syötearvon yhden komplementin esityksen, eli kaikki bitit käänteisinä, mikä tarkoittaa, että se tekee joka 0:sta 1:een ja joka 1:stä 0:aan.

Esimerkki:

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

Huomautus: Kääntäjä antaa tämän luvun 2:n komplementin, eli 2:n komplementin 10 on -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);   }>

Lähtö
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

Aputila: O(1)

Aika monimutkaisuus: 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]);  } }>

Lähtö
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

Bit-Shift-operaattorit (Shift-operaattorit)

relaatioalgebra rdbms:ssä

Shift-operaattoreita käytetään siirtämään luvun bittejä vasemmalle tai oikealle, jolloin luku kerrotaan tai jaetaan vastaavasti kahdella. Niitä voidaan käyttää, kun meidän on kerrottava tai jaettava luku kahdella.

Syntaksi:

 number   shift_op   number_of_places_to_shift;>

Vuorotyöntekijöiden tyypit:

Vuorooperaattorit jaetaan edelleen 4 tyyppiin. Nämä ovat:

  1. Allekirjoitettu oikea vuorooperaattori (>>)
  2. Allekirjoittamaton oikea vaihdeoperaattori (>>>)
  3. Vasen vaihtooperaattori (<<)
  4. Ellejetön vasen vaihtooperaattori (<<<)

Huomautus: Lisätietoja Javan Shift Operatoreista on kohdassa Shift Operator Javassa .

ohjelma toteuttaa kaikki Bitwise-operaattorit javassa käyttäjän syöttämistä varten

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  }>

Syöte

Enter first number: 4 Enter second number: 8>

Lähtö

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>

Selitys

Tämä ohjelma kehottaa käyttäjää syöttämään kaksi numeroa, num1 ja num2. Sitten se suorittaa seuraavat bittikohtaiset toiminnot käyttämällä &, |, ^, ~, <> ja>>>-operaattoreita:

Bitittain JA
Bittikohtaisesti TAI
Bitittainen XOR
Bitittain EI
Bittisuuntainen vasen vaihto
Bitwise Right Shift
Bitwise Zero Fill Right Shift

Edut

Bitwise-operaattoreiden käytön edut Javassa ovat:

  1. Nopeus: Bittioperaatiot ovat paljon nopeampia kuin aritmeettiset operaatiot, koska ne toimivat suoraan lukujen binääriesityksissä.
  2. Avaruuden optimointi: Bittikohtaisia ​​operaatioita voidaan käyttää useiden arvon tallentamiseen yhteen muuttujaan, mikä voi olla hyödyllistä työskenneltäessä rajoitetun muistin kanssa.
  3. Bittimanipulaatio: Bittioperaattorit mahdollistavat luvun yksittäisten bittien tarkan hallinnan, mikä voi olla hyödyllistä useissa sovelluksissa, kuten salakirjoituksessa, virheiden havaitsemisessa ja pakkaamisessa.
  4. Koodin yksinkertaistaminen : Bittikohtaiset toiminnot voivat yksinkertaistaa koodia vähentämällä tiettyjen tehtävien suorittamiseen tarvittavien ehdollisten lausekkeiden ja silmukoiden määrää.

Yhteenvetona voidaan todeta, että Bitwise-operaattorit ovat tärkeä työkalu suorituskyvyn optimoinnissa, koodin luettavuuden parantamisessa ja koodin monimutkaisuuden vähentämisessä Java-sovelluksissa.