C ++

Operatori C ++

Operatori C ++
Šajā rakstā mēs apspriedīsim operatorus bitiem C ++ programmēšanas valodā. Mēs redzēsim vairākus darba piemērus, lai detalizēti izprastu darbības bitos. Programmā C ++ bitu operatori darbojas individuālā bitu līmenī.

Īss Bitwise operatoru pārskats

Operators ir simbols, kas liek sastādītājam veikt noteiktas matemātiskas vai loģiskas darbības. C ++ ir vairāki operatoru veidi, piemēram:

  1. Aritmētiskie operatori
  2. Loģiskie operatori
  3. Relāciju operatori
  4. Uzdevumu operatori
  5. Operatori, kas darbojas pa bitiem
  6. Dažādi operatori

Visi Bitwise operatori darbojas individuālā bitu līmenī. Operatoru bitu bitu var izmantot tikai veselu skaitļu un rakstzīmju datu tipiem. Piemēram, ja jums ir vesela skaitļa tipa mainīgais lielums 32 biti un jūs lietojat operāciju BITĀ NEKĀRTOTI, visiem 32 bitiem tiks piemērots bits NĒ. Tātad galu galā visi 32 mainīgā lieluma biti tiks apgriezti.

C ++ ir pieejami seši dažādi operatori, kas darbojas pa bitiem:

  1. Bitu virzienā VAI [attēlots kā “|”]
  2. BITĀ UN UN [tiek attēlots kā “&”]
  3. Neveiksmīgi NAV [attēlots kā “~”]
  4. Bitor XOR [attēlots kā “^”]
  5. Pa kreisi Shift pa kreisi [attēlots kā “<<”]
  6. Pa labi pa labi nobīdīts [attēlots kā “>>”]

Bitwise OR Patiesības tabula

Operators Bitwise OR rada 1, ja vismaz viens operands ir iestatīts uz 1. Operatora Bitwise OR patiesības tabula:

1. bits 2. bits Bit-1 | 2. bits
0 0 0
0 1 1
1 0 1
1 1 1

Bitu un patiesības tabula

Operators Bitwise AND rada 1, ja abi operandi ir iestatīti uz 1. Operatora Bitwise AND patiesības tabula:

1. bits 2. bits Bit-1 un Bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitwise NAV patiesības tabula

Operators Bitwise NOT apgriež operandu. Šeit ir operatora Bitwise NOT patiesības tabula:

1. bits ~ Bit-1
0 1
1 0

Bitor XOR patiesības tabula

Operators Bitwise XOR rada 1 tikai tad, ja viens no operandiem ir iestatīts uz 1. Šeit ir operatora Bitwise AND patiesības tabula:

1. bits 2. bits Bit-1 ^ Bit-2
0 0 0
0 1 1
1 0 1
1 1 0

Bitu kustības kreisās maiņas operators

Operators Bitwise Left Shift pārvieto visus bitus, kas palikuši pēc norādītā skaita norādīto bitu. Ja pa kreisi nobīdīsit visus datu bitus ar 1, sākotnējie dati tiks reizināti ar 2. Līdzīgi, ja kreisajā pusē visus datu bitus nobīdīsit par 2, sākotnējie dati tiks reizināti ar 4.

Bitu kustības labās maiņas operators

Operators Bitwise Right Shift pārvieto visus bitus pa labi par norādīto norādīto bitu skaitu. Ja jūs pa labi pārvietosit visus datu bitus par 1, sākotnējie dati tiks dalīti (vesels skaitlis) ar 2. Līdzīgi, ja pa labi pārvietojat visus datu bitus par 2, sākotnējie dati tiks sadalīti (vesels skaitlis) ar 4.

Piemēri

Tā kā mēs esam sapratuši bitu darbības pamatjēdzienu, apskatīsim pāris piemērus, kas palīdzēs jums saprast bitu darbības C ++:

Piemērs-7 un 8 ir paredzēts, lai parādītu, cik operētājsistēmas operatori reāli izmanto C ++ programmēšanas valodu.

1. piemērs: Operators pa bitiem vai VAI

Šajā programmas piemērā mēs parādīsim Bitwise OR operatoru.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
tukšs displejs (virkne print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9, rezultāts = 0;
// Darbība pa bitēm VAI
rezultāts = pirmais_numurs otrais_numurs;
// izdrukājiet ievades numurus
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
displejs ("Otrais skaitlis ir =", otrais_numurs);
// izdrukāt izvades vērtību
displejs ("pirmais_num | otrais_num =", rezultāts);
cout << endl;
atgriešanās 0;

2. piemērs: Bitwise AND operators

Šajā programmas piemērā mēs ilustrēsim operatoru Bitwise AND.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// display () funkcija
void display (virknes print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9, rezultāts = 0;
// Darbība pa bitēm UN
rezultāts = pirmais_numurs & otrais_numurs;
// izdrukājiet ievades numurus
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
sprauga ("Otrais skaitlis ir =", otrais_numurs);
// izdrukāt izvades vērtību
displejs ("first_num & second_num =", rezultāts);
cout << endl;
atgriešanās 0;

3. piemērs: BITĀ NAV operators

Šajā programmas piemērā mēs sapratīsim, kā operētājsistēma Bitwise NOT darbojas C++.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
void display (virknes print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9, rezultāts_1 = 0, rezultāts_2 = 0;
// Bitwise NAV darbība
rezultāts_1 = ~ pirmais_numurs;
rezultāts_2 = ~ otrais_numurs;
// izdrukājiet ievades numurus un izvades vērtību
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
displejs ("~ pirmais_num =", rezultāts_1);
cout << endl;
// izdrukājiet ievades numurus un izvades vērtību
displejs ("Otrais skaitlis ir =", otrais_numurs);
displejs ("~ otrais_num =", rezultāts_2);
cout << endl;
atgriešanās 0;

4. piemērs: Operators Bitwise XOR

Šīs programmas mērķis ir izskaidrot, kā Bitwise XOR operators darbojas C++.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
tukšs displejs (virkne print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9, rezultāts = 0;
// Operācija Bitwise XOR
rezultāts = pirmais_num ^ otrais_numurs;
// izdrukājiet ievades numurus
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
displejs ("Otrais skaitlis ir =", otrais_numurs);
// izdrukāt izvades vērtību
displejs ("pirmais_num ^ otrais_num =", rezultāts);
cout << endl;
atgriešanās 0;

5. piemērs: Operators pa kreisi pa kreisi

Tagad mēs redzēsim operatora Bitwise Left Shift piemēru. Šajā programmā mēs esam deklarējuši divus skaitļus, vesels skaitlis: pirmais_numurs un otrais_skaitlis. Šeit “first_num” ir nobīdīts pa kreisi par vienu bitu, bet “second_num” - pa kreisi - divi biti.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
tukšs displejs (virkne print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9, rezultāts_1 = 0, rezultāts_2 = 0;
// Kustība pa kreisi pa kreisi
rezultāts_1 = pirmais_numurs << 1;
rezultāts_2 = otrais_numurs << 2;
// izdrukājiet ievades numurus un izvades vērtību
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
displejs ("pirmais_num << 1     =  ", result_1);
cout << endl;
// izdrukājiet ievades numurus un izvades vērtību
displejs ("Otrais skaitlis ir =", otrais_numurs);
displejs ("second_num << 2    =  ", result_2);
cout << endl;
atgriešanās 0;

6. piemērs: Operators pa labi pa labi

Tagad mēs redzēsim vēl vienu piemēru, lai saprastu operatoru Bitwise Right Shift. Mēs esam deklarējuši divus skaitļus: pirmais skaitlis un otrais skaitlis vesels skaitlis. Šeit “first_num” ir nobīdīts pa labi, bet “second_num” - ar diviem bitiem pa labi.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
void display (virknes print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9, rezultāts_1 = 0, rezultāts_2 = 0;
// Operācija pa labi pa labi
rezultāts_1 = pirmais_numurs >> 1;
rezultāts_2 = otrais_skaitlis >> 2;
// izdrukājiet ievades numurus un izvades vērtību
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
displejs ("first_num >> 1 =", rezultāts_1);
cout << endl;
// izdrukājiet ievades numurus un izvades vērtību
displejs ("Otrais skaitlis ir =", otrais_numurs);
displejs ("otrais_numurs >> 2 =", rezultāts_2);
cout << endl;
atgriešanās 0;

7. piemērs: iestatiet bitu

Šis piemērs ir paredzēts, lai parādītu, kā iestatīt konkrētu bitu, izmantojot bitu kustības operatorus.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
void display (virknes print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9;
// izdrukāt ievades numuru - first_num
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
// Iestatiet 5. bitu
pirmais_numurs = = (1UL << 5);
// Drukas izvade
displejs ("Set first bit of first_num =", first_num);
cout << endl;
// izdrukāt ievades numuru - second_num
cout << endl;
display ("Otrais skaitlis ir =", otrais_numurs); // Iestatiet 6. bitu
otrais_numurs = = (1UL << 6);
// Drukas izvade
displejs ("Set second bitn of second_num =", second_num);
cout << endl;
atgriešanās 0;

8. piemērs: notīrīt bitu

Šis piemērs ir paredzēts, lai parādītu, kā notīrīt konkrētu bitu, izmantojot bitu kustības operatorus.

# iekļaut
# iekļaut
# iekļaut
izmantojot nosaukumvietu std;
// funkcija display ()
tukšs displejs (virkne print_msg, int numurs)

bitset<16> myBitSet (numurs);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int pirmais_num = 7, otrais_num = 9;
// izdrukāt ievades numuru - pirmais_numurs
cout << endl;
displejs ("Pirmais skaitlis ir =", pirmais_numurs);
// Notīrīt 2. bitu
pirmais_numurs = = ~ (1UL << 2);
// Drukas izvade
displejs ("Set first bit of first_num =", first_num);
cout << endl;
// izdrukāt ievades numuru - second_num
cout << endl;
displejs ("Otrais skaitlis ir =", otrais_numurs);
// Notīrīt 3. bitu
otrais_numurs = = ~ (1UL << 3);
// Drukas izvade
displejs ("Set second bit of second_num =", second_num);
cout << endl;
atgriešanās 0;

Secinājums

Operators bitu bitu galvenokārt tiek izmantots, lai manipulētu ar atsevišķu bitu skaitli un rakstzīmju datu tipu. Operētājsistēma bitwise tiek ļoti izmantota iegultās programmatūras izstrādē. Tātad, ja jūs izstrādājat ierīces draiveri vai sistēmu, kas ir ļoti tuvu aparatūras līmenim, iespējams, vēlēsities izmantot šos operatorus bitiem.

Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...
Rakstot Windows 10, kursors lec vai pārvietojas nejauši
Ja atklājat, ka peles kursors automātiski, nejauši lec vai pārvietojas pats, rakstot Windows klēpjdatorā vai datorā, daži no šiem ieteikumiem var palī...
Kā mainīt peles un skārienpaliktņu ritināšanas virzienu operētājsistēmā Windows 10
Pele un SkārienpaliktnisTas ne tikai padara skaitļošanu vienkāršu, bet arī efektīvāku un mazāk laikietilpīgu. Mēs nevaram iedomāties dzīvi bez šīm ier...