Operatører utgjør den grunnleggende byggesteinen i ethvert programmeringsspråk. Java gir også mange typer operatører som kan brukes i henhold til behovet for å utføre ulike beregninger og funksjoner, det være seg logiske, aritmetiske, relasjonelle, osv. De er klassifisert basert på funksjonaliteten de gir. Her er noen typer:
- Aritmetiske operatorer
- Unære operatører
- Oppdragsoperatør
- Relasjonelle operatører
- Logiske operatører
- Ternær operatør
- Bitvise operatører
- Skiftoperatører
Denne artikkelen forklarer alt man trenger å vite om Bitwise-operatører.
Bitvise operatører
Bitvise operatorer brukes til å utføre manipulering av individuelle biter av et tall. De kan brukes med hvilken som helst integrert type (char, short, int, etc.). De brukes når du utfører oppdaterings- og spørringsoperasjoner av de binære indekserte trærne.
endre fil linux
La oss nå se på hver enkelt av de bitvise operatørene i Java:
1. Bitvis ELLER (|)
Denne operatoren er en binær operator, betegnet med '|'. Den returnerer bit for bit ELLER av inngangsverdier, dvs. hvis en av bitene er 1, gir den 1, ellers viser den 0.
Eksempel:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise OR Operation of 5 and 7 0101 | 0111 ________ 0111 = 7 (In decimal)>
2. Bitvis OG (&)
Denne operatoren er en binær operator, betegnet med '&.' Den returnerer bit for bit OG av inngangsverdier, dvs. hvis begge bitene er 1, gir den 1, ellers viser den 0.
Eksempel:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise AND Operation of 5 and 7 0101 & 0111 ________ 0101 = 5 (In decimal)>
3. Bitvis XOR (^)
Denne operatoren er en binær operator, betegnet med '^.' Den returnerer bit for bit XOR av inngangsverdier, dvs. hvis tilsvarende biter er forskjellige, gir den 1, ellers viser den 0.
dfs algoritme
Eksempel:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise XOR Operation of 5 and 7 0101 ^ 0111 ________ 0010 = 2 (In decimal)>
4. Bitvis komplement (~)
Denne operatoren er en unær operator, betegnet med '~.' Den returnerer ens komplementrepresentasjon av inngangsverdien, dvs. med alle biter invertert, noe som betyr at den gjør hver 0 til 1, og hver 1 til 0.
Eksempel:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
JavaMerk: Kompileren vil gi 2s komplement av det tallet, dvs. 2s komplement av 10 vil være -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); }> Produksjon
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Hjelperom:O(1)
Tidskompleksitet: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]); } }> Produksjon
a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>
Bit-Shift-operatører (Shift-operatører)
Skiftoperatorer brukes til å forskyve bitene til et tall til venstre eller høyre, og dermed multiplisere eller dele tallet med to, henholdsvis. De kan brukes når vi skal gange eller dele et tall med to.
Syntaks:
number shift_op number_of_places_to_shift;>
Typer skiftoperatører:
Skiftoperatører er videre delt inn i 4 typer. Disse er:
- Signert høyreskiftoperatør (>>)
- Usignert høyreskiftoperatør (>>>)
- Venstre skiftoperatør(<<)
- Usignert venstreskiftoperatør (<<<)
Merk: For mer detaljer om Shift Operators i Java, se Skiftoperatør i Java .
velg som
program for å implementere alle Bitwise-operatører i java for brukerinndata
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 }> Inndata
Enter first number: 4 Enter second number: 8>
Produksjon
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>
Forklaring
Dette programmet ber brukeren om å skrive inn to tall, num1 og num2. Den utfører deretter følgende bitvise operasjoner ved å bruke &, |, ^, ~, <> og>>> operatorene:
Bitvis OG
Bitvis ELLER
Bitvis XOR
Bitvis IKKE
Bitvis venstre skift
Bitvis Høyre Shift
Bitvis Nullfyll Høyre Shift
Fordeler
Fordelene med å bruke Bitwise Operators i Java er:
- Hastighet: Bitvise operasjoner er mye raskere enn aritmetiske operasjoner da de opererer direkte på binære representasjoner av tall.
- Plassoptimalisering: Bitvise operasjoner kan brukes til å lagre flere verdier i en enkelt variabel, noe som kan være nyttig når du arbeider med begrenset minne.
- Bitmanipulasjon: Bitvise operatører tillater presis kontroll over individuelle biter av et tall, noe som kan være nyttig i ulike applikasjoner som kryptografi, feildeteksjon og komprimering.
- Kodeforenkling : Bitvise operasjoner kan forenkle koden ved å redusere antallet betingede setninger og løkker som kreves for å utføre visse oppgaver.
Oppsummert er Bitwise Operators et viktig verktøy for å optimalisere ytelsen, forbedre kodelesbarheten og redusere kodekompleksiteten i Java-applikasjoner.