logo

Bitwise Operators i C++

Det finns olika operatörer i C++. Varje operatör har en speciell symbol såväl som en operation att utföra. Vi har olika kategorier av operatörer i C++.

  1. Aritmetiska operatorer
  2. Relationella operatörer
  3. Logiska operatörer
  4. Uppdragsoperatörer
  5. Bitwise operatörer

I den här artikeln kommer vi att lära oss om Bitwise Operators i C++.



C++ Bitwise Operators

Bitvisa operatorer är de operatorer som används för att utföra operationer på bitnivå på heltal. När du utför denna operation betraktas heltal som sekvenser av binära siffror. I C++ har vi olika typer av Bitwise Operators.

  1. Bitvis OCH (&)
  2. Bitvis ELLER (|)
  3. Bitvis XOR (^)
  4. Bitvis INTE (~)
  5. Vänster skift (<<)
  6. Högerväxling (>>)

1. Bitvis OCH (&)

Bitvis OCH-operation utförs mellan två heltal. Den kommer att jämföra varje bit på samma position och resultatbiten sätts endast(1) och endast om båda motsvarande bitar är satta(1). Symbolen som används för att utföra bitvis OCH-operation är &.

Exempel : vi kommer att utföra en bitvis operation mellan två siffror 7 och 4. I binärt kommer 7 att representeras som 111 och 4 kommer att representeras som 100.

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

som vi kan se i exemplet ovan är endast de bitar satta bitar vars motsvarande bitar (båda) är satta. Därför 7&4=4

2. Bitvis ELLER (|)

Om bitvis ELLER-operation utförs mellan två heltal, kommer den att jämföra varje bit på samma position och resultatbiten sätts(1) om någon av motsvarande bitar är satt(1). Symbolen som används för att utföra bitvis ELLER-operation är |.

Exempel: vi kommer att utföra bitvis ELLER-operation mellan två siffror 7 och 4. i binärt kommer 7 att representeras som 111 och 4 kommer att representeras som 100.

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

som vi kan se i ovanstående exempel är dessa bitar satta bitar vars åtminstone en motsvarande bit är satt. Därför 7|4=7.

3. Bitvis XOR (^)

Om Bitwise XOR-operation utförs mellan två heltal, kommer den att jämföra varje bit på samma position och resultatbiten kommer att sättas(1) om någon av motsvarande bitar skiljer sig, dvs en av dem ska vara 1 och den andra ska vara noll. Symbolen som används för att utföra bitvis XOR-operation är ^.

typkonvertering och gjutning i java

Exempel: vi kommer att utföra bitvis XOR-operation mellan två siffror 7 och 4. i binärt kommer 7 att representeras som 111 och 4 kommer att representeras som 100.

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

som vi kan se i exemplet ovan är dessa bitar satta bitar vars motsvarande bitar är olika. Därför 7^4=3.

4. Bitvis INTE (~)

Operationen Bitwise NOT utförs på ett enda nummer. Den ändrar den aktuella biten till dess komplement, dvs om den nuvarande biten är 0 blir den i resultatet 1 och om den nuvarande biten är 1 så blir den 0. Den betecknas med symbolen ~.

Exempel: Vi kommer att utföra bitvis NOT-operation på nummer 4. Talet 4 representeras som 100 i binärt.

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

Som vi kan se i resultatet är bitarna vars initiala värde var 1 0 i resultat och vice versa. Därför kommer Bitwise INTE av nummer 4 att vara 3.

5. Vänster skift (<<)

Denna operator flyttar bitarna av heltal till vänster med ett specifikt nummer (Som nämnt) . Denna vänsterväxlingsoperation är ekvivalent med att multiplicera heltal med 2-potens antal förskjutna positioner. Symbolen som används för att representera Left Shift Operator är <<.

Exempel: Tänk på att vi har ett heltal 5, och vi kommer att vänsterskifta dess bitar med 2 positioner. Operationen kommer att representeras som x << 2.

Siffran 5 representeras som 101 i binärt. Vi kommer att lägga till några nollor i början för att vänsterskifta bitarna. Därför kommer det att representeras som 00000101. Nu kommer vi att flytta alla bitarna två positioner åt vänster och vi kommer att fylla de tomma positionerna med 0. Därför blir det 00010100 vilket är 20 . Som tidigare nämnts vänsterflyttning av talet med två bitar innebär att multiplicera det med 2 höjt till 2 vilket är 4 . 5*4 = 20 visar det ovan nämnda uttalandet.

innehåller delsträng java

6.Högerväxling (>>)

Denna operator flyttar bitarna av heltal till höger med ett specifikt nummer (Som nämnts) . Denna växlingsoperation till höger är ekvivalent med att dividera heltal med 2 potenser av antalet skiftade positioner. Symbolen som används för att representera Left Shift Operator är>>.

Exempel: Tänk att vi har ett heltal 16, och vi kommer att högerskifta dess bitar med 2 positioner. Operationen kommer att representeras som x>> 2.

Siffran 16 representeras som 10000 i binärt. Vi kommer att lägga till några nollor i början för att högerförskjuta bitarna. Därför kommer det att representeras som 00010000. Nu kommer vi att flytta alla bitarna två positioner åt höger och vi kommer att fylla de tomma positionerna med 0. Därför blir det 00000100 vilket är 4 . Som tidigare nämnts högerförskjutning av talet med två bitar innebär att dividera det med 2 höjt till 2 vilket är 4 . 16*4 = 4 visar det ovan nämnda uttalandet.

C++ Program Bitwise Operators

Nedan är implementeringen av ämnet:

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;  // Skriver ut resultaten av // 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;>

Produktion:

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

Slutsats

Sammanfattningsvis används Bitwise Operators för att utföra operationer på binär (bit) nivå. Vi har olika typer av Bitwise Operators som AND, OR, XOR, NOT, left shift och höger shift operatorer i C++. Genom denna operation kan manipulation av individuella bitar göras mycket exakt, vilket är väsentligt vid lågnivådatahantering.