Operatorzy C ++ Bitise

Operatorzy C ++ Bitise
W tym artykule omówimy operatorów bitowców w języku programowania C ++. Zobaczymy kilka roboczych przykładów, aby szczegółowo zrozumieć operacje bitowe. W C ++ operatorzy bitowcy pracują na indywidualnym poziomie bitów.

Krótki przegląd operatorów bitowców

Operator jest symbolem, który instruuje kompilatora, aby wykonał pewne operacje matematyczne lub logiczne. Istnieje kilka rodzajów operatorów w C ++, takich jak:

  1. Operatory arytmetyczne
  2. Operatorzy logiczni
  3. Operatorzy relacyjni
  4. Operatorzy zadań
  5. Operatorzy bitowate
  6. MISC Operatorzy

Wszyscy operatorzy bitowcy pracują na indywidualnym poziomie bitów. Operator bitowców można zastosować tylko do liczb całkowitych i danych danych. Na przykład, jeśli masz zmienną typu liczb całkowitych o rozmiarze 32 bitów i zastosujesz Bitwise, a nie operator nie zostanie zastosowany dla wszystkich 32 bitów. W końcu wszystkie 32 bity w zmiennej zostaną odwrócone.

Istnieje sześć różnych operatorów bitowców w C ++:

  1. Bitwise lub [reprezentowane jako „|”]
  2. Bitwise i [reprezentowane jako „&”]
  3. Bitwise nie [reprezentowane jako „~”]
  4. Bitwise Xor [reprezentowany jako „^”]
  5. Bitise lewa zmiana [reprezentowana jako „<<”]
  6. Bitwise prawy zmiana [reprezentowana jako „>>”]

Stół bitowe lub prawdy

Bitwise lub operator wytwarza 1, gdy co najmniej jeden operand jest ustawiony na 1. Oto tabela prawdy dla Bitwise lub operatora:

Bit-1 Bit-2 Bit-1 | Bit-2
0 0 0
0 1 1
1 0 1
1 1 1

Stół bitowe i prawdy

Bitwise i operator wytwarzają 1, gdy oba operandy są ustawione na 1. Oto tabela prawdy dla Bitwise i operatora:

Bit-1 Bit-2 BIT-1 i BIT-2
0 0 0
0 1 0
1 0 0
1 1 1

Stół nie

Bitwise nie operator odwraca operand. Oto tabela prawdy dla Bitwise, a nie operatora:

Bit-1 ~ Bit-1
0 1
1 0

Tabela prawdy Bitwise Xor

Bitwise Xor Operator produkuje 1 if i tylko wtedy, gdy jeden z operandów jest ustawiony na 1. Oto tabela prawdy dla Bitwise i operatora:

Bit-1 Bit-2 Bit-1 ^ bit-2
0 0 0
0 1 1
1 0 1
1 1 0

Bitwise operator zmiany biegów

Bitwise operator zmiany biegów przesuwa wszystkie bity pozostawione przez określoną liczbę określonych bitów. Jeśli pozostawiisz przesunięcie wszystkich bitów danych o 1, oryginalne dane zostaną pomnożone przez 2. Podobnie, jeśli pozostawiisz przesunięcie wszystkich bitów danych o 2, oryginalne dane zostaną pomnożone przez 4.

Bitwise PRAWA ZMIANA

Operator z prawej zmiany bitowej przesuwa wszystkie bity w prawo o określoną liczbę określonych bitów. Jeśli w prawo przesuniesz wszystkie bity danych o 1, oryginalne dane zostaną podzielone (podział liczby całkowitych) o 2. Podobnie, jeśli w prawo przesuniesz wszystkie bity danych o 2, oryginalne dane zostaną podzielone (podział liczby całkowitych) przez 4.

Przykłady

Teraz, ponieważ zrozumieliśmy podstawową koncepcję operacji bitowych, spójrzmy na kilka przykładów, które pomogą ci zrozumieć operacje bitowe w C ++:

  • Przykład-1: Bitwise lub operator
  • Przykład-2: Bitwise i operator
  • Przykład-3: Bitise nie operator
  • Przykład-4: Bitwise Xor Operator
  • Przykład-5: operator Bitwise LEEL SHIFT
  • Przykład-6: operator prawej zmiany biegów bitowców
  • Przykład-7: Ustaw bit
  • Przykład-8: jasny bit

Przykład-7 i 8 służą do demonstrowania rzeczywistego użycia operatorów bitowych w języku programowania C ++.

Przykład-1: Bitwise lub operator

W tym przykładowym programie zademonstrujemy bitowate lub operator.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int First_num = 7, second_num = 9, wynik = 0;
// bitwe lub operacja
wynik = First_num | second_num;
// Wydrukuj numery wejściowe
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
wyświetlacz („druga liczba to =”, second_num);
// Wydrukuj wartość wyjściową
wyświetlacz („First_num | second_num =”, wynik);
Cout << endl;
powrót 0;

Przykład-2: Bitwise i operator

W tym przykładowym programie zilustrujemy Bitwise i operator.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int First_num = 7, second_num = 9, wynik = 0;
// Bitwise i Operacja
wynik = First_num i second_num;
// Wydrukuj numery wejściowe
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
splay („druga liczba to =”, second_num);
// Wydrukuj wartość wyjściową
wyświetlacz („First_num i second_num =”, wynik);
Cout << endl;
powrót 0;

Przykład-3: Bitise nie operator

W tym przykładowym programie zrozumiemy, jak działa operator Bitwise++.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int First_num = 7, second_num = 9, wynik_1 = 0, wynik_2 = 0;
// Bitwise nie działa
wynik_1 = ~ First_num;
wynik_2 = ~ second_num;
// Wydrukuj liczby wejściowe i wartość wyjściowa
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
Display ("~ First_num =", wynik_1);
Cout << endl;
// Wydrukuj liczby wejściowe i wartość wyjściowa
wyświetlacz („druga liczba to =”, second_num);
wyświetlacz („~ second_num =”, wynik_2);
Cout << endl;
powrót 0;

Przykład-4: Bitwise Xor Operator

Ten program zamierza wyjaśnić, jak działa operator Bitwise Xor w C++.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;

int main ()

int First_num = 7, second_num = 9, wynik = 0;
// Bitwise Xor Operation
wynik = First_num ^ second_num;
// Wydrukuj numery wejściowe
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
wyświetlacz („druga liczba to =”, second_num);
// Wydrukuj wartość wyjściową
wyświetlacz („First_num ^ second_num =”, wynik);
Cout << endl;
powrót 0;

Przykład-5: operator Bitwise LEEL SHIFT

Teraz zobaczymy przykład operatora Bitwise lewy zmianę. W tym programie zadeklarowaliśmy dwie liczby, First_num i Second_num typu liczb całkowitych. Tutaj „First_num” jest przesunięty o jeden bit, a „Second_num” jest przesunięty przez dwa bity.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;

int main ()

int First_num = 7, second_num = 9, wynik_1 = 0, wynik_2 = 0;
// Bitwise Operacja przesunięcia w lewo
wynik_1 = First_num << 1;
wynik_2 = second_num << 2;
// Wydrukuj liczby wejściowe i wartość wyjściowa
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
Wyświetlacz („First_num << 1 = ", result_1);
Cout << endl;
// Wydrukuj liczby wejściowe i wartość wyjściowa
wyświetlacz („druga liczba to =”, second_num);
Wyświetlacz („Second_num << 2 = ", result_2);
Cout << endl;
powrót 0;

Przykład-6: operator prawej zmiany biegów bitowców

Teraz zobaczymy kolejny przykład, aby zrozumieć operator prawej zmiany biegów. Zadeklarowaliśmy dwie liczby, First_num i Second_num typu liczb całkowitych. Tutaj „First_num” jest przesunięty w prawo o jeden bit, a „Second_num” jest przesunięty w prawo.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" <<
MyBitset.to_ulong () << ") " << endl;

int main ()

int First_num = 7, second_num = 9, wynik_1 = 0, wynik_2 = 0;
// Bitise PRAWA ZMIANA
wynik_1 = First_num >> 1;
wynik_2 = second_num >> 2;
// Wydrukuj liczby wejściowe i wartość wyjściowa
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
wyświetlacz („First_num >> 1 =”, wynik_1);
Cout << endl;
// Wydrukuj liczby wejściowe i wartość wyjściowa
wyświetlacz („druga liczba to =”, second_num);
wyświetlacz („second_num >> 2 =”, wynik_2);
Cout << endl;
powrót 0;

Przykład-7: Ustaw bit

Ten przykład zamierza pokazać, jak ustawić określony bit za pomocą operatorów bitowców.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" <<
MyBitset.to_ulong () << ") " << endl;

int main ()

int First_num = 7, second_num = 9;
// Wydrukuj numer wejściowy - First_num
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
// Ustaw 5. bit
First_num | = (1Ul << 5);
// Wydrukuj wyjście
wyświetlacz („Ustaw 5. bit First_num =”, First_num);
Cout << endl;
// Wydrukuj numer wejściowy - Second_num
Cout << endl;
wyświetlacz („druga liczba to =”, second_num);
// Ustaw 6. bit
second_num | = (1Ul << 6);
// Wydrukuj wyjście
wyświetlacz („Ustaw 6. bit second_num =”, second_num);
Cout << endl;
powrót 0;

Przykład-8: jasny bit

Ten przykład zamierza pokazać, jak wyczyścić określony bit za pomocą operatorów bitowców.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
// funkcja display ()
void wyświetlacz (String print_msg, liczba int)

bitset<16> MYBITSet (numer);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" <<
MyBitset.to_ulong () << ") " << endl;

int main ()

int First_num = 7, second_num = 9;
// Wydrukuj numer wejściowy - First_num
Cout << endl;
wyświetlacz („Pierwszy numer to =”, First_num);
// Wyczyść 2. bit
First_num & = ~ (1Ul << 2);
// Wydrukuj wyjście
wyświetlacz („Ustaw 2. bit First_num =”, First_num);
Cout << endl;
// Wydrukuj numer wejściowy - Second_num
Cout << endl;
wyświetlacz („druga liczba to =”, second_num);
// Wyczyść trzeci bit
second_num & = ~ (1Ul << 3);
// Wydrukuj wyjście
wyświetlacz („Ustaw 3 bit drugiego_num =”, second_num);
Cout << endl;
powrót 0;

Wniosek

Operator bitowców służy przede wszystkim do manipulowania poszczególnymi bitami dla typu danych liczb całkowitych i znaków. Operator Bitwise jest mocno używany w tworzeniu oprogramowania wbudowanego. Tak więc, jeśli opracowujesz sterownik urządzenia lub system bardzo blisko poziomu sprzętu, możesz użyć tych operatorów bitowych.