logo

Bitsgewijze operatoren in C++

Er zijn verschillende operators aanwezig in C++. Elke operator heeft een bepaald symbool en een bewerking die moet worden uitgevoerd. We hebben verschillende categorieën operators in C++.

  1. Rekenkundige operatoren
  2. Relationele operators
  3. Logische operatoren
  4. Toewijzingsoperatoren
  5. Bitwise-operatoren

In dit artikel leren we over de Bitwise Operators in C++.



10 tot de macht 6

C++ Bitsgewijze operators

Bitwise Operators zijn de operators die worden gebruikt om bewerkingen op bitniveau uit te voeren op de gehele getallen. Bij het uitvoeren van deze bewerking worden gehele getallen beschouwd als reeksen binaire cijfers. In C++ hebben we verschillende soorten Bitwise Operators.

  1. Bitsgewijze EN (&)
  2. Bitsgewijze OF (|)
  3. Bitsgewijze XOR (^)
  4. Bitsgewijs NIET (~)
  5. Linksverschuiving (<<)
  6. Rechterverschuiving (>>)

1. Bitsgewijze AND (&)

Bitsgewijze AND-bewerking wordt uitgevoerd tussen twee gehele getallen. Het vergelijkt elke bit op dezelfde positie en de resultaatbit wordt alleen ingesteld (1) en alleen als beide overeenkomstige bits zijn ingesteld (1). Het symbool dat wordt gebruikt om de bitsgewijze AND-bewerking uit te voeren is &.

Voorbeeld : we zullen een bitsgewijze bewerking uitvoeren tussen twee getallen 7 en 4. In binair getal wordt 7 weergegeven als 111 en wordt 4 weergegeven als 100.

 1 1 1 & 1 0 0  ------  1 0 0>

zoals we in het bovenstaande voorbeeld kunnen zien, zijn alleen die bits ingestelde bits waarvan de overeenkomstige bits (beide) zijn ingesteld. Daarom 7&4=4

2. Bitsgewijze OF (|)

Als de bitsgewijze OR-bewerking wordt uitgevoerd tussen twee gehele getallen, wordt elke bit op dezelfde positie vergeleken en wordt de resultaatbit ingesteld (1) als een van de overeenkomstige bits is ingesteld (1). Het symbool dat wordt gebruikt om de bitsgewijze OR-bewerking uit te voeren is |.

Voorbeeld: we zullen een bitsgewijze OF-bewerking uitvoeren tussen twee getallen 7 en 4. in binair getal wordt 7 weergegeven als 111 en wordt 4 weergegeven als 100.

 1 1 1 | 1 0 0  ------  1 1 1>

zoals we in het bovenstaande voorbeeld kunnen zien, zijn die bits ingestelde bits waarvan ten minste één corresponderende bit is ingesteld. Daarom 7|4=7.

3. Bitsgewijze XOR (^)

Als een bitsgewijze XOR-bewerking wordt uitgevoerd tussen twee gehele getallen, wordt elke bit op dezelfde positie vergeleken en wordt de resultaatbit ingesteld (1) als een van de overeenkomstige bits verschilt, dat wil zeggen dat één ervan 1 moet zijn en de andere nul. Het symbool dat wordt gebruikt om bitsgewijze XOR-bewerkingen uit te voeren is ^.

Voorbeeld: we zullen een bitsgewijze XOR-bewerking uitvoeren tussen twee getallen 7 en 4. in binair getal wordt 7 weergegeven als 111 en wordt 4 weergegeven als 100.

 1 1 1 ^ 1 0 0  ------  0 1 1>

zoals we in het bovenstaande voorbeeld kunnen zien, zijn deze bits ingestelde bits waarvan de corresponderende bits verschillend zijn. Daarom 7^4=3.

4.Bitgewijs NIET (~)

De Bitwise NOT-bewerking wordt uitgevoerd op een enkel nummer. Het verandert de huidige bit in zijn complement, d.w.z. als de huidige bit 0 is, zal het resultaat 1 zijn en als de huidige bit 1 is, wordt het 0. Het wordt aangegeven met het symbool ~.

Voorbeeld: We zullen bitsgewijze NIET-bewerking uitvoeren op nummer 4. Het getal 4 wordt weergegeven als 100 in binair getal.

~ 1 0 0  ------  0 1 1>

Zoals we in het resultaat kunnen zien, zijn de bits waarvan de initiële waarde 1 was, 0 in het resultaat en omgekeerd. Daarom wordt Bitwise NOT van nummer 4 3.

5.Linkerverschuiving (<<)

Deze operator verschuift de bits van Integer naar de linkerkant op basis van een specifiek nummer (zoals vermeld). Deze verschuiving naar links komt overeen met het vermenigvuldigen van het gehele getal met 2 machten, het aantal verschoven posities. Het symbool dat wordt gebruikt om de Left Shift Operator weer te geven is <<.

Voorbeeld: Stel dat we een geheel getal 5 hebben, en we zullen de bits ervan 2 posities naar links verschuiven. De bewerking wordt weergegeven als x << 2.

Het getal 5 wordt binair weergegeven als 101. We zullen aan het begin enkele nullen toevoegen om de bits naar links te verschuiven. Daarom wordt het weergegeven als 00000101. Nu verplaatsen we alle bits twee posities naar links en vullen we de lege posities met 0. Daarom wordt het 00010100, wat 20 is. Zoals eerder vermeld betekent het links verschuiven van het getal met twee bits het vermenigvuldigen met 2, verhoogd tot 2, wat 4 is. 5*4 = 20 toont de bovengenoemde bewering.

index van java

6. Rechterverschuiving (>>)

Deze operator verschuift de bits van Integer naar de rechterkant op basis van een specifiek nummer (zoals vermeld). Deze verschuiving naar rechts komt overeen met het delen van het gehele getal door 2 machten, het aantal verschoven posities. Het symbool dat wordt gebruikt om de Left Shift Operator weer te geven is>>.

Voorbeeld: Stel dat we een geheel getal 16 hebben, en we zullen de bits ervan 2 posities naar rechts verschuiven. De bewerking wordt weergegeven als x>> 2.

Het getal 16 wordt binair weergegeven als 10.000. We zullen aan het begin enkele nullen toevoegen om de bits naar rechts te verschuiven. Daarom wordt het weergegeven als 00010000. Nu verplaatsen we alle bits twee posities naar rechts en vullen we de lege posities met 0. Daarom wordt het 00000100, wat 4 is. Zoals eerder vermeld, betekent het naar rechts verschuiven van het getal met twee bits het delen door 2, verhoogd naar 2, wat 4 is. 16*4 = 4 toont de bovengenoemde bewering.

C++ Programma bitsgewijze operators

Hieronder vindt u de implementatie van het onderwerp:

C++
// C++ Program to demonstrate // Bitwise Operator #include  using namespace std; // Main function int main()  b;  // Bitwise XOR  int bitwise_xor = a ^ b;  // Bitwise NOT  int bitwise_not = ~a;  // Bitwise Left Shift  int left_shift = a << 2;  // Bitwise Right Shift  int right_shift = a>> 1;  // De resultaten afdrukken van // Bitwise Operators cout<< 'AND: ' << bitwise_and << endl;  cout << 'OR: ' << bitwise_or << endl;  cout << 'XOR: ' << bitwise_xor << endl;  cout << 'NOT a: ' << bitwise_not << endl;  cout << 'Left Shift: ' << left_shift << endl;  cout << 'Right Shift: ' << right_shift << endl;  return 0;>

Uitgang:

AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>

Conclusie

Concluderend: Bitwise Operators worden gebruikt om bewerkingen op binair (bit) niveau uit te voeren. We hebben verschillende soorten bitsgewijze operators zoals AND, OR, XOR, NOT, shift-naar-links en shift-operators naar rechts in C++. Door deze bewerkingen kan manipulatie van individuele bits zeer nauwkeurig worden uitgevoerd, wat essentieel is bij gegevensverwerking op laag niveau.