C++ yra įvairių operatorių. Kiekvienas operatorius turi tam tikrą simbolį ir operaciją, kurią reikia atlikti. Mes turime įvairių kategorijų operatorių C++.
- Aritmetiniai operatoriai
- Santykių operatoriai
- Loginiai operatoriai
- Užduočių operatoriai
- Bitiniai operatoriai
Šiame straipsnyje mes sužinosime apie Bitwise operatorius C++.
C++ bitų operatoriai
Bitiniai operatoriai yra operatoriai, naudojami atlikti operacijas bitų lygiu su sveikaisiais skaičiais. Atliekant šią operaciją sveikieji skaičiai laikomi dvejetainių skaitmenų sekomis. C++ kalboje turime įvairių tipų Bitwise operatorių.
- Bitiškai IR (&)
- Bitiškai ARBA (|)
- Bitinis XOR (^)
- Bitiškai NE (~)
- Kairysis Shift (<<)
- Dešinysis poslinkis (>>)
1. Bitiniai IR (&)
Bitų IR operacija atliekama tarp dviejų sveikųjų skaičių. Jis palygins kiekvieną bitą toje pačioje padėtyje, o rezultato bitas bus nustatytas tik (1) ir tik tada, jei bus nustatyti abu atitinkami bitai (1). Simbolis, naudojamas bitinei IR operacijai atlikti, yra &.
linux komandos, kurios
Pavyzdys : atliksime bitinę operaciją tarp dviejų skaičių 7 ir 4. Dvejetainėje 7 bus pavaizduota kaip 111, o 4 bus pavaizduota kaip 100.
1 1 1 & 1 0 0 ------ 1 0 0>
kaip matome aukščiau pateiktame pavyzdyje, tik tie bitai yra nustatyti bitai, kurių atitinkami bitai (abu) yra nustatyti. Todėl 7&4=4
2. Bitiškai ARBA (|)
Jei bitų ARBA operacija atliekama tarp dviejų sveikųjų skaičių, jis palygins kiekvieną bitą toje pačioje padėtyje ir rezultato bitas bus nustatytas (1), jei bus nustatytas bet kuris iš atitinkamų bitų (1). Simbolis, naudojamas bitinei ARBA operacijai atlikti, yra |.
Pavyzdys: atliksime bitų ARBA operaciją tarp dviejų skaičių 7 ir 4. dvejetainėje 7 bus pavaizduota kaip 111, o 4 - kaip 100.
1 1 1 | 1 0 0 ------ 1 1 1>
kaip matome aukščiau pateiktame pavyzdyje, tie bitai yra nustatyti bitai, kurių bent vienas atitinkamas bitas yra nustatytas. Todėl 7|4=7.
3. Bitinis XOR (^)
Jei bitų XOR operacija atliekama tarp dviejų sveikųjų skaičių, jis palygins kiekvieną bitą toje pačioje padėtyje ir rezultato bitas bus nustatytas (1), jei kuris nors iš atitinkamų bitų skiriasi, ty vienas iš jų turi būti 1, o kitas - nulis. Simbolis, kuris naudojamas bitinei XOR operacijai atlikti, yra ^.
Pavyzdys: atliksime bitinę XOR operaciją tarp dviejų skaičių 7 ir 4. dvejetainėje 7 bus pavaizduota kaip 111, o 4 – kaip 100.
1 1 1 ^ 1 0 0 ------ 0 1 1>
kaip matome aukščiau pateiktame pavyzdyje, tie bitai yra nustatyti bitai, kurių atitinkami bitai yra skirtingi. Todėl 7^4=3.
4. Bitiškai NE (~)
„Bitwise NOT“ operacija atliekama su vienu skaičiumi. Jis pakeičia dabartinį bitą į jo komplementą, t. y. jei dabartinis bitas yra 0, tada jis bus 1, o jei dabartinis bitas yra 1, tada jis taps 0. Jis žymimas simboliu ~.
Pavyzdys: Atliksime bitų NE operaciją su skaičiumi 4. Skaičius 4 dvejetainiu būdu pavaizduotas kaip 100.
~ 1 0 0 ------ 0 1 1>
Kaip matome rezultate, bitai, kurių pradinė vertė buvo 1, yra 0 ir atvirkščiai. Todėl NE skaičiaus 4 bitai bus 3.
5. Kairysis Shift (<<)
Šis operatorius perkelia sveikojo skaičiaus bitus į kairę pagal tam tikrą skaičių (kaip minėta) . Ši poslinkio į kairę operacija yra lygi sveikojo skaičiaus padauginimui iš 2 perkeltų pozicijų skaičiaus. Simbolis, naudojamas žymėti kairiojo pamainos operatorių, yra <<.
Pavyzdys: Apsvarstykite, kad turime sveikąjį skaičių 5, o jo bitus perkelsime į kairę 2 pozicijomis. Operacija bus pavaizduota kaip x << 2.
Skaičius 5 vaizduojamas kaip 101 dvejetainiu būdu. Norėdami perkelti bitus į kairę, pradžioje pridėsime keletą nulių. Todėl jis bus pavaizduotas kaip 00000101. Dabar visus bitus perkelsime dviem pozicijomis į kairę ir tuščias vietas užpildysime 0. Todėl jis taps 00010100, kuris yra 20 . Kaip minėta anksčiau, kairėn skaičiaus perkėlimas dviem bitais reiškia jo padauginimą iš 2, padidintą iki 2, kuris yra 4. 5*4 = 20 rodo aukščiau paminėtą teiginį.
nedeterministiniai baigtiniai automatai
6. Dešinysis poslinkis (>>)
Šis operatorius perkelia sveikojo skaičiaus bitus į dešinę pagal tam tikrą skaičių (kaip minėta) . Ši poslinkio į dešinę operacija yra lygi sveikojo skaičiaus dalijimui iš 2 perkeltų pozicijų skaičiaus. Simbolis, naudojamas žymėti kairiosios pamainos operatorių, yra>>.
Pavyzdys: Apsvarstykite, kad turime sveikąjį skaičių 16, o jo bitus perkelsime į dešinę 2 pozicijomis. Operacija bus pavaizduota kaip x>> 2.
Skaičius 16 yra vaizduojamas kaip 10 000 dvejetainiu būdu. Norėdami perkelti bitus į dešinę, pradžioje pridėsime keletą nulių. Todėl jis bus pavaizduotas kaip 00010000. Dabar visus bitus perkelsime dviem pozicijomis į dešinę ir tuščias vietas užpildysime 0. Todėl jis taps 00000100, kuris yra 4 . Kaip minėta anksčiau, skaičiaus perkėlimas į dešinę dviem bitais reiškia jo padalijimą iš 2, padidintą iki 2, kuris yra 4. 16*4 = 4 rodo aukščiau paminėtą teiginį.
C++ programos bitų operatoriai
Žemiau pateikiamas temos įgyvendinimas:
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; // Rezultatų spausdinimas // 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;>
Išvestis:
AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>
Išvada
Apibendrinant galima pasakyti, kad bitų operatoriai naudojami dvejetainio (bitų) lygio operacijoms atlikti. C++ kalboje turime įvairių bitų operatorių kaip AND, OR, XOR, NOT, poslinkio į kairę ir dešinę. Šiomis operacijomis galima labai tiksliai manipuliuoti atskirais bitais, o tai yra būtina žemo lygio duomenų tvarkymui.