Bitmaske in C# verwenden
In diesem Beitrag wird untersucht, wie Bitmasken in C# verwendet werden können. Das Wichtigste ist, dass Sie die allgemeine Idee hinter dem verstehen, was Sie tun, auch wenn es viele verschiedene Methoden gibt, um diese Aufgabe zu erledigen.
Sie müssen sich bewusst sein, dass Sie mit den Bits im Speicher arbeiten, um die Bitmaske zu verwenden.
Bitmaske in C#
verwenden
C# verfügt über eine Vielzahl von Operatoren, von denen die meisten als bitweise Operatoren bezeichnet werden. Diese Operatoren führen Operationen auf Bitebene im Speicher aus.
Die bitweisen Operatoren mit ihren Symbolen lauten wie folgt.
- Der mit dem
&
-Zeichen gekennzeichnete Operator ist derAND
-Operator. - Der durch das
|
gekennzeichnete Operator Vorzeichen ist der OperatorODER
. - Der mit dem
~
-Zeichen gekennzeichnete Operator ist derNOT
-Operator. - Der durch das
^
-Zeichen gekennzeichnete Operator ist derXOR
-Operator. - Der durch das Zeichen
<<
gekennzeichnete Operator ist der OperatorLinksverschiebung
. - Der durch das Zeichen
>>
gekennzeichnete Operator ist der OperatorRechtsverschiebung UND
.
Die Funktionsweise des UND
-Operators ist wie folgt.
X Y Res
0 0 0
0 1 0
1 0 0
1 1 1
Res
ist die Ausgabe und X
und Y
sind die Eingabemöglichkeiten.
Die Funktionsweise des ODER
-Operators ist wie folgt.
X Y Res
0 0 0
0 1 1
1 0 1
1 1 1
Res
ist die Ausgabe und X
und Y
sind die Eingabemöglichkeiten.
Die Funktionsweise des NOT
-Operators ist wie folgt.
X Y
1 0
0 1
Y
ist die Ausgabe und X
sind die Eingabemöglichkeiten.
Die Funktionsweise des XOR
-Operators ist wie folgt.
X Y Res
0 0 0
0 1 1
1 0 1
1 1 0
Res
ist die Ausgabe und X
und Y
sind die Eingabemöglichkeiten.
Die Arbeitsweise des Linksverschiebungs
-Operators ist wie folgt.
x = 010110011
Wenn wir es zweimal nach links verschieben, bewegen sich die Bits um 2-Bit-Abstände nach links.
x << 2
Jetzt wird das x
sein:
x = 011001100
Und auf der rechten Seite werden zwei neue 0
-Bits hinzugefügt.
Die Arbeitsweise des Operators für die rechte Schicht ist wie folgt.
x = 010110011
Wenn wir es zweimal nach rechts verschieben, bewegen sich die Bits um 2-Bit-Abstände nach links.
x >> 2
Jetzt wird das x
sein:
x = 000101100
Und auf der linken Seite werden zwei neue 0
-Bits hinzugefügt. Da wir nun die Funktionsweise des bitweisen Operators kennen, können wir Bitmasken auf unsere Eingaben anwenden.
Der am häufigsten für Bitmasken verwendete Operator ist der AND
-Operator; Es wird verwendet, um zu sehen, welche Bits eins und welche null sind, da sein Ausgang eins ist, wenn beide Eingänge 1 sind.
Es folgt der Code, der die letzten 4 maskierten Bits auswertet.
using System;
namespace HelloWorld {
class Program {
static void Main(string[] args) {
char x = '2';
int y = 0b00001111;
int z = x & y;
Console.WriteLine(z);
}
}
}
Damit es 1 Byte Platz im Speicher hat, haben wir die Variable vom Typ char
x
und die Variable vom Typ int
y
konstruiert.
Die binäre Version des entsprechenden Dezimalwerts, bei dem die letzten vier Bits 1 sind, wird als 0b00001111
geschrieben.
Die Zeile mit int z= x&y;
berechnet das bitweise und der Bits und speichert das Ergebnis in der Variablen namens z
. Da die Variable z
vom Datentyp int
ist, können wir das Ergebnis in Dezimalform sehen.
Die Operation ist wie folgt.
x = 01111101
y = 00001111
z = x& y = 00001101
Da dies sichtbar ist, wissen wir, dass die Variable x
bis auf die letzten vier Bits vollständig entfernt wurde. Dazu haben wir den AND
-Operator verwendet.
Ebenso können wir die Bits mit dem ODER
-Operator kombinieren.
Sie sollten jetzt sehen können, dass es jetzt einfach ist, mit ihnen zu spielen und Ihre Chiffren zu generieren, wenn Sie ein solides Wissen über die Bits haben.
I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn