Bitmaskenoperationen in Java
Die Bitmaske ist die binäre Darstellung einiger Daten. Bei der Bitmaskierung betrachten wir alle Daten als einige Binärziffern wie 0 und 1.
Wir können diese Binärziffern auch als Boolesche Werte verwenden, da 1
für true
und 0
für false
steht.
Bitmaskenoperationen in Java
Eine andere Definition der Bitmaskierung ist die Visualisierung einer Zahl oder anderer Daten in binärer Darstellung. Einige Bits sind gesetzt
und andere nicht gesetzt
, wobei gesetzt
true
oder 1
bedeutet und nicht gesetzt
false
oder 0
bedeutet.
Nehmen wir an, wir haben einen Binärwert 10011
. Hier sind das 1., 4. und 5. Bit gesetzt
, während das 2. und 3. ungesetzt
sind.
Lassen Sie uns die Bitmaske anhand eines Beispiels verstehen. Angenommen, wir haben einen Satz von vier Zeichen {w,x,y,z}
, und wir wollen eine andere Darstellung der Zeichenfolge.
Um eine Maske der 4 Bits {_ _ _ _}
zu erstellen, gibt uns jedes Bit die Information, ob wir uns auf dieses Zeichen beziehen oder nicht. Zur Vereinfachung bedeutet die binäre Kombination 1001
w,z
, 0000
bedeutet eine leere Zeichenkette und 1111
bedeutet w, x, y, z
.
Nachdem wir nun Bits und Bitmaskierung verstanden haben, ist es an der Zeit, etwas über bitweise Operatoren zu lernen, die zum Manipulieren von Bits verwendet werden.
Bitweise Operatoren in Java
Bitweise Java-Operatoren werden verwendet, um die Manipulation von Bits durchzuführen. Diese Operatoren können in jedem ganzzahligen Typ wie short, byte, long, char, int usw. verwendet werden.
Wir haben verschiedene bitweise Operatoren. Jeder von ihnen wird für einen anderen Zweck verwendet.
Dies sind die folgenden:
- Bitweises UND (
&
) - Bitweises ODER (
|
) - Bitweises Komplement (
~
) - Bitweises XOR (
^
)
Bitweiser UND-Operator (&
) in Java
Der UND-Operator ist ein bitweiser Operator, der mit &
gekennzeichnet ist. Es berechnet bitweise zwei oder mehr Werte und gibt true
zurück, wenn beide Werte true
sind; andernfalls false
.
1(True) & 1(True) = 1(True)
0(False) & 0(False) = 0(False)
1(True) & 0(False) = 0(False)
0(False) & 1(True) = 0(False)
Beispielcode:
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
int a = 3;
int b = 4;
// bitwise AND
// 0011 & 0100=0000 = 0
System.out.println("a & b = " + (a & b));
}
}
Ausgabe:
a & b = 0
Bitweiser ODER-Operator (|
) in Java
Der OR-Operator ist ebenfalls ein bitweiser Operator, der mit |
bezeichnet wird, unterscheidet sich jedoch vom AND-Operator (&
). Es gibt true
zurück, wenn und nur wenn ein einzelner Wert true
ist; andernfalls false
.
1(True) | 1(True) = 1(True)
0(False) | 0(False) = 0(False)
1(True) | 0(False) = 1(True)
0(False) | 1(True) = 1(True)
Beispielcode:
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
int a = 3;
int b = 4;
// bitwise OR
// 0011 & 0100=0000 = 7
System.out.println("a | b = " + (a | b));
}
}
Ausgabe:
a & b = 7
Bitweiser Komplementoperator (~
) in Java
Der bitweise Komplementoperator (~
), auch bekannt als NOT
-Operator, kann ein Bitmuster invertieren. Es ist ein unärer Operator, da er mit einem einzigen Wert verwendet wird.
Angenommen, wir haben eine Binärzahl, 10110
, und wir wollen diese mit dem bitweisen Komplementoperator (~
) negieren. Es wird 01001
.
Es hat 0s in 1s und 1s in 0s invertiert.
~ 1(True) = 0(False)
~ 0(False) = 1(True)
Beispielcode:
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
// Initial values
int a = 3, b;
// bitwise complement of a
// a = 011 where b = ~a, b =100
b = ~a;
System.out.println("~a = " + b);
}
}
Ausgabe:
~a = -4
Bitweiser XOR-Operator (^
) in Java
Der bitweise XOR-Operator von Java ist ein binärer Operator, der mit ^
bezeichnet wird.
Es gibt true
zurück, wenn die eingegebenen Binärwerte beide unterschiedlich sind. Wenn jedoch die Eingabewerte gleich sind, entweder 0 oder 1, ist das Ergebnis false
.
1(True) ^ 1(True) = 0(False)
0(False) ^ 0(False) = 0(False)
1(True) ^ 0(False) = 1(True)
0(False) ^ 1(True) = 1(True)
Beispielcode:
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
// Initial values
int a = 3;
int b = 4;
// bitwise xor
// 0011 ^ 0100 = 0111 = 7
System.out.println("a ^ b = " + (a ^ b));
}
}
Ausgabe:
a ^ b = 7
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn