bitwise operator

Üdvözlöm, Ön a bitwise operator szó jelentését keresi. A DICTIOUS-ban nem csak a bitwise operator szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a bitwise operator szót egyes és többes számban mondani. Minden, amit a bitwise operator szóról tudni kell, itt található. A bitwise operator szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Abitwise operator és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

bitwise operator (tsz. bitwise operators)

  1. (informatika)

A bitműveletek (bitwise operators) a C++ nyelvben az egyes biteken végzett műveletek végrehajtására szolgálnak. Ezek a műveletek nagyon hasznosak, ha alacsony szintű programozást végzünk, például hardvervezérlés, kriptográfia, adatkompresszió vagy optimalizáció esetén.



Bitműveletek típusai C++-ban

A C++ következő bitműveleteket támogatja:

Operátor Neve Leírás
& Bitenkénti ÉS (AND) Mindkét bit 1 kell legyen ahhoz, hogy az eredmény 1 legyen.
| Bitenkénti VAGY (OR) Ha legalább az egyik bit 1, az eredmény 1 lesz.
^ Bitenkénti KIZÁRÓ VAGY (XOR) Ha a bitek eltérőek, az eredmény 1, ha azonosak, az eredmény 0.
~ Bitenkénti negálás (NOT) Minden bitet az ellentettjére változtat (1 → 0, 0 → 1).
<< Bitenkénti balra tolás (Left Shift) A biteket balra tolja, az alacsonyabb helyiértéken 0-t helyez be.
>> Bitenkénti jobbra tolás (Right Shift) A biteket jobbra tolja, a magasabb helyiértéken 0 vagy az előjel bitet helyez be (függően a típustól).



Bitműveletek példákkal

1. Bitenkénti ÉS (&)

#include <iostream>
using namespace std;

int main() {
    int a = 5;  // 0101 binárisan
    int b = 3;  // 0011 binárisan
    int c = a & b;  // 0001 binárisan (1 decimálisan)
    cout << "a & b = " << c << endl;
    return 0;
}

Magyarázat:
- 5 binárisan: 0101 - 3 binárisan: 0011 - 0101 & 0011 = 0001 → eredmény: 1



2. Bitenkénti VAGY (|)

int c = a | b;  // 0111 binárisan (7 decimálisan)

Magyarázat:
- 5 binárisan: 0101 - 3 binárisan: 0011 - 0101 | 0011 = 0111 → eredmény: 7



3. Bitenkénti KIZÁRÓ VAGY (^)

int c = a ^ b;  // 0110 binárisan (6 decimálisan)

Magyarázat:
- 5 binárisan: 0101 - 3 binárisan: 0011 - 0101 ^ 0011 = 0110 → eredmény: 6



4. Bitenkénti negálás (~)

int c = ~a;  // Negálás, függ a bitmérettől

Magyarázat:
- 5 binárisan: 0000 0101 - ~5 binárisan: 1111 1010 (komplementer alak, előjeles számoknál -6 lesz)



5. Balra tolás (<<)

int c = a << 1;  // 1010 binárisan (10 decimálisan)

Magyarázat:
- 5 binárisan: 0101 - 5 << 11010 (10 decimálisan)
- Minden bit balra mozdul, a jobb oldali helyek nullával töltődnek fel.



6. Jobbra tolás (>>)

int c = a >> 1;  // 0010 binárisan (2 decimálisan)

Magyarázat:
- 5 binárisan: 0101 - 5 >> 10010 (2 decimálisan)
- Minden bit jobbra mozdul, a bal oldali helyek nullával töltődnek fel.



Bitműveletek alkalmazása

1. Bitmaszkolás

Adott bitek ellenőrzése vagy manipulálása.

int value = 0b10101100;  // 172 decimálisan
int mask = 0b00000100;   // 4 decimálisan
bool bitSet = (value & mask) != 0;  // Megnézzük, hogy a 3. bit be van-e állítva

2. Bit beállítása

int value = 0b10100000;
value |= 0b00000100;  // 10100100 lesz az új érték

3. Bit törlése

value &= ~0b00000100;  // 10100000 lesz ismét

4. Bit invertálása

value ^= 0b00000100;  // 10100100 vagy 10100000 (kapcsolgatás)

Összegzés

A bitműveletek rendkívül hatékony eszközök az alacsony szintű programozásban. Használhatók:
✔️ Hardvervezérléshez
✔️ Gyors műveletekhez (pl. szorzás, osztás 2 hatványaival)
✔️ Adatstruktúrák optimalizálásához