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ä:
- Aritmeettiset operaattorit
- Yksittäiset operaattorit
- Tehtäväoperaattori
- Relaatiooperaattorit
- Loogiset operaattorit
- Kolmiosainen operaattori
- Bittikohtaiset operaattorit
- 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)>
JavaHuomautus: Kääntäjä antaa tämän luvun 2:n komplementin, eli 2:n komplementin 10 on -6.
// 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:
- Allekirjoitettu oikea vuorooperaattori (>>)
- Allekirjoittamaton oikea vaihdeoperaattori (>>>)
- Vasen vaihtooperaattori (<<)
- 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:
- Nopeus: Bittioperaatiot ovat paljon nopeampia kuin aritmeettiset operaatiot, koska ne toimivat suoraan lukujen binääriesityksissä.
- Avaruuden optimointi: Bittikohtaisia operaatioita voidaan käyttää useiden arvon tallentamiseen yhteen muuttujaan, mikä voi olla hyödyllistä työskenneltäessä rajoitetun muistin kanssa.
- Bittimanipulaatio: Bittioperaattorit mahdollistavat luvun yksittäisten bittien tarkan hallinnan, mikä voi olla hyödyllistä useissa sovelluksissa, kuten salakirjoituksessa, virheiden havaitsemisessa ja pakkaamisessa.
- 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.