bitwise operation
Főnév
bitwise operation (tsz. bitwise operations)
A bitműveletek (bitwise operations) a C++ nyelvben lehetővé teszik, hogy közvetlenül a számok bináris bitjein végezzünk műveleteket. Ezek különösen hasznosak, ha alacsony szintű optimalizálásra, hardverprogramozásra vagy egyedi adattárolásra van szükség.
Bitműveletek típusai C++-ban
| Operátor | Név | Leírás |
|---|---|---|
& |
Bitwise AND | Mindkét bitnek 1-nek kell lennie az eredményben. |
| |
Bitwise OR | Ha legalább az egyik bit 1, akkor az eredmény is 1. |
^ |
Bitwise XOR | Ha a bitek különböznek, akkor az eredmény 1, különben 0. |
~ |
Bitwise NOT | Az összes bitet megfordítja (1 → 0, 0 → 1). |
<< |
Balra tolás (Left Shift) | Az összes bitet balra tolja, és nullákkal tölti fel a helyet. |
>> |
Jobbra tolás (Right Shift) | Az összes bitet jobbra tolja. |
Bitműveletek példákon keresztül
1. Bitwise AND (&)
Két szám bitenkénti ÉS művelete:
#include <iostream>
int main() {
int a = 5; // 0101 binárisan
int b = 3; // 0011 binárisan
int c = a & b;
std::cout << c << std::endl; // Kiírja: 1
return 0;
}
Művelet lebontása:
0101 (5) & 0011 (3) ----------- 0001 (1)
2. Bitwise OR (|)
Ha bármelyik bit 1, akkor az eredmény is 1.
int c = 5 | 3; // 7 lesz az eredmény
0101 (5) | 0011 (3) ----------- 0111 (7)
3. Bitwise XOR (^)
Ha a bitek különböznek, az eredmény 1, különben 0.
int c = 5 ^ 3; // 6 lesz az eredmény
0101 (5) ^ 0011 (3) ----------- 0110 (6)
4. Bitwise NOT (~)
Minden bitet megfordít. Figyelem: C++-ban a számokat kétkomplementes ábrázolásban tároljuk.
int c = ~5;
Binárisan:
~00000101 (5) ------------ 11111010 (-6)
5. Balra tolás (<<)
Minden bitet balra tolunk, és a jobb oldalt nullákkal töltjük ki.
int c = 5 << 1; // 10 lesz az eredmény
0101 (5) << 1 ------------ 1010 (10)
Minden balra tolás megduplázza a számot.
6. Jobbra tolás (>>)
Minden bitet jobbra tolunk, a bal oldali bitek attól függően töltődnek fel, hogy az adott szám előjeles vagy előjel nélküli.
int c = 5 >> 1; // 2 lesz az eredmény
0101 (5) >> 1 ------------ 0010 (2)
Minden jobbra tolás felezi a számot.
Hol hasznosak a bitműveletek?
- Bitmaskok: Jogosultságok tárolása és ellenőrzése.
- Gyors szorzás és osztás:
x << 1ugyanaz, mintx * 2, ésx >> 1ugyanaz, mintx / 2. - Hardverprogramozás: Regiszterek és memóriaterületek manipulálása.
- Adattömörítés: Hatékony bitmanipulációs technikák.
Összegzés
A bitműveletek hatékony eszközei a C++ nyelvnek, és megfelelő alkalmazásukkal gyorsabb és optimalizáltabb kódot írhatunk!
- bitwise operation - Szótár.net (en-hu)
- bitwise operation - Sztaki (en-hu)
- bitwise operation - Merriam–Webster
- bitwise operation - Cambridge
- bitwise operation - WordNet
- bitwise operation - Яндекс (en-ru)
- bitwise operation - Google (en-hu)
- bitwise operation - Wikidata
- bitwise operation - Wikipédia (angol)