Heim >Backend-Entwicklung >C++ >Bitoperationen in C++ und ihre Anwendungskenntnisse
Bitweise Operationen in C++ sind eine von Programmierern häufig verwendete Berechnungsmethode. Durch die Verwendung bitweiser Operationen zur Datenverarbeitung können einige komplexe Rechenaufgaben effizienter erledigt werden. In diesem Artikel werden gängige Bitoperationssymbole in C++ und ihre Anwendungstechniken sowie einige Beispiele vorgestellt, die in der tatsächlichen Entwicklung verwendet werden können.
C++ bietet sechs bitweise Operationssymbole, die mit binären Bits arbeiten können, von denen vier bitweise Operatoren und die anderen beiden Schiebeoperatoren sind. Die Symbole für die bitweise Operation lauten wie folgt:
& Bitweise UND-Verknüpfung: Das Ergebnis ist 1, wenn beide Binärbits 1 sind, andernfalls ist es 0.
|. Bitweise ODER-Verknüpfung: Das Ergebnis ist 0, wenn beide Binärbits 0 sind, andernfalls ist es 1.
^ Bitweise XOR-Operation: Wenn zwei Binärbits gleich sind, ist das Ergebnis 0, und wenn die beiden Binärbits unterschiedlich sind, ist das Ergebnis 1.
~ Bitweise Negationsoperation: Negieren Sie das Binärbit, dh 0 wird zu 1 und 1 wird zu 0.
Die Symbole für die Schiebeoperation lauten wie folgt:
Rechtsverschiebungsoperation: Verschieben Sie die Binärzahl um die angegebene Anzahl von Stellen nach rechts und füllen Sie die hohen Bits mit 0 oder 1 (je nachdem, ob die ursprüngliche Zahl positiv oder negativ ist).
Bitoperationen werden häufig in Computeroperationen auf niedriger Ebene verwendet. Viele effiziente Algorithmen können durch einige clevere Bitoperationstechniken realisiert werden. Hier sind einige häufig verwendete Techniken:
2.1 Bestimmen der Parität
Wenn bei einer Binärzahl die letzte Ziffer 1 ist, ist die Zahl ungerade und umgekehrt. Daher können wir die Parität einer Zahl durch Bitoperationen bestimmen.
Wenn für jede ganze Zahl n das Ergebnis von n & 1 0 ist, bedeutet dies, dass n eine gerade Zahl ist, andernfalls ist es eine ungerade Zahl. Zum Beispiel:
int n = 5;
if( n & 1 ){
cout << "奇数" << endl;
}
else {
cout << "偶数" << endl;
}
2.2 Tauschen Sie die Werte zweier Zahlen aus.
Tauschen Sie die Werte zweier Variablen Im Allgemeinen besteht die Methode darin, eine dritte Variable zu verwenden, um den Wert einer der Variablen zu speichern, und ihr dann den Wert der anderen Variablen zuzuweisen. Die Verwendung von Bitoperationen erfordert jedoch keinen zusätzlichen Speicherplatz, sondern kann direkt durch Bit-XOR-Operationen implementiert werden, das heißt:
int a = 10, b = 20;
b = b ^ a;
a = a ^ b;
int count = 0;
while (n != 0){
if (n & 1 == 1){ count++; } n = n >> 1; //右移一位}
return count;
}
return (n & (1 << i)) !=0 ;}2.5 Setze das i-te Bit in der Binärzahl auf 1 Verschiebe die Zahl um 1 nach links i Bits und verschieben Sie dann diese Binärzahl. Führen Sie eine bitweise ODER-Operation für die Zahl und die Originalzahl durch, um das i-te Bit in der Originalzahl auf 1 zu setzen. unsigned int setBit(unsigned int n, int i){
return n | (1 << i);}2.6 Setzen Sie das i-te Bit in der Binärzahl auf 0 Verschieben Sie die Zahl 1 um i Bits nach links, dann invertieren und zusammenführen die Binärzahl Führen Sie eine bitweise UND-Verknüpfung mit der Originalzahl durch, um das i-te Bit in der Originalzahl auf 0 zu setzen. unsigned int clearBit(unsigned int n, int i){
return n & ~(1 << i);}
for (int j = 0; j < img.colnum(); j++){ if (img.at(i,j) < threshold){ img.at(i,j) = 0; //设为0 } else { img.at(i,j) = 255; //设为255 } }}Durch die Verarbeitung von Binärziffern können auch viele effiziente Algorithmen und Datenstrukturen implementiert werden. wie Bitmaps, Hash-Tabelle usw. Kurz gesagt, Bitoperationen sind ein leistungsstarkes Werkzeug und werden häufig in der Programmierung verwendet. Kenntnisse in Bitoperationssymbolen und -techniken können eine aktive Rolle bei der Implementierung effizienter Algorithmen und Datenstrukturen und der Verbesserung der Programmoperationseffizienz spielen.
Das obige ist der detaillierte Inhalt vonBitoperationen in C++ und ihre Anwendungskenntnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!