Grundlegende Entwicklung der C-Sprache ---- Verzeichnis
Vorbereitung
Um ein Bit auf 1 oder 0 zu setzen, ist eine Bitmanipulation erforderlich.
Dieses Mal müssen Sie die Vier-Bit-Operationen AND (&) oder (|), Linksverschiebung (<<) und Rechtsverschiebung (>>) verwenden .
Spezifische Bitoperationsanweisungen: C-Sprache: Bitoperatoren ---- und (&), oder (|), nicht (~), exklusiv oder (^), Linksverschiebung (<<) und Rechtsverschiebung (>>)
Ein bestimmtes Bit – auf 1 gesetzt
Oder (|) Eigenschaften : 1 ist 1, doppelte 0 ist 0.
1 oder (|) Jede Zahl ist 1, wodurch die Position 1-Operation realisiert werden kann .
Jede Zahl von 0 oder (|) kann eine beliebige Zahl sein, und wenn die Operation an Position 1 realisiert werden kann, werden andere Bits nicht beeinflusst.
Verwenden Sie dann die Linksverschiebungs- und Rechtsverschiebungsoperationen, um die Setzoperation eines beliebigen Bits zu realisieren.
Der spezifische Code lautet wie folgt:
#include <stdio.h>
int main(int argc, char *argv[])
{
int m = 0x93; //0x93 二进制: 1001 0011
int a = m|(1<<3); //0x9b 二进制:1001 1011
printf("a=0x%x\n",a);
return 0;
}
Das Ergebnis der Operation ist wie folgt:
Ein bestimmtes Bit – auf 0 gesetzt
Und (&) Eigenschaften : 0 ist 0, doppelt 1 ist 1. Jede Zahl von
0 und (&) ist 0, wodurch die Position 0-Operation realisiert werden kann .
Jede Zahl von 1 und (&) kann eine beliebige Zahl sein, und wenn die Operation an Position 0 realisiert werden kann, werden andere Bits nicht beeinflusst.
Verwenden Sie dann die Linksverschiebungs- und Rechtsverschiebungsoperationen, um die Nullsetzungsoperation eines beliebigen Bits zu realisieren.
Der spezifische Code lautet wie folgt:
#include <stdio.h>
int main(int argc, char *argv[])
{
int m = 0x93; //0x93 二进制: 1001 0011
int a = m&(~(1<<4)); //0x83 二进制:1000 0011
printf("a=0x%x\n",a);
return 0;
}
Das Ergebnis der Operation ist wie folgt: