Wie die bitweise verwenden | Operator in C-Programmierung

Sie sind bereits mit C-Programmierung Entscheidungs ​​logischen Operatoren vertraut: für UND und || für OR. In dem Auswertung, müssen beide Elemente sein gilt für die Aussage als Echt- für die ausgewertet werden || Auswertung nur eines der Elemente muss wahr sein.

Auf atomarer Ebene die Betreiber und | führen ähnliche Operationen, sondern auf einer Bit-für-Bit-Basis. Der Nettoeffekt ist, dass Sie die verwenden können und | Betreiber einzelne Bits zu manipulieren:

Die | das bitweise OR-Operator, der auch als inklusive oder bekannt.

Das AND-Operator ist die bitweise.

Der OR-Set zeigt, wie das bitweise zu verwenden OR-Operator Bits in einem Byte zu setzen. Der OR-Wert wird als Konstante SET definiert, bei der Linie 2 ist binär 00100000.

Die ODER-SET

#include #define SET 32char * binbin (int n) -int main () t% s t% d n ", binbin (SET), SET) -printf (" = t% s t% d n ", binbin (Ergebnis), Ergebnis) -return (0) -char * binbin (int n) {static char bin [9] -int x-for (x = 0-XLT; 8-x ++) {bin [x ] = n 0x80? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-return (bin) -}

Zeile 12 berechnet die bitweise ODER-Verknüpfung zwischen einem Wert Eingang, bor, und der SET konstant. Operator, Binärkette und Dezimalwert: Das Ergebnis wird in drei Spalten angezeigt. Das Endergebnis der Operation ist es, dass die Bits auf 1 in der SET-Wert wird auch auf 1 in der bor Wert eingestellt werden.

Übung 1Geben Sie den Quellcode aus dem OR-Set in Ihren Editor ein neues Programm zu erstellen. Erstellen und das Programm auszuführen.

Hier ist die Ausgabe für den Wert 65:

Geben Sie einen Wert von 0 bis 255: 6501000001 65 | 00100000 32 = 01100001 97

Sie können in der binären Ausgabe sehen, wie das sechste Bit im Ergebnis eingestellt wird.

Was bedeutet das?

Es bedeutet, dass Sie die Werte auf der binären Ebene manipulieren kann, was interessante Konsequenzen für bestimmte mathematische Operationen verfügt, wie in oben mit dem Text gezeigt.

UP MIT DIESEM TEXT

# include int main () {char Eingang [64] -int ch-int x = 0-printf ( "Geben Sie in GROSSBUCHSTABEN:") -fgets (Eingang, 63, stdin) -Während (Eingang [x] = '! n ') ch = Eingang [x] putchar (' n ') - return (0) -}

Übung 2: Starten Sie ein neues Projekt, indem Sie den Quellcode mit in oben mit dem Text gezeigt. Erstellen und ausführen.

Aufgrund der Art und Weise Karte, um die ASCII-Codes zwischen Groß- und Kleinbuchstaben, können Sie den Fall wechseln, indem Sie einfach das sechste Bit in einem Byte-Einstellung.

Menü