Wednesday, May 08, 2024 16:34

Cuprins >> Introducere > Operatorii pe biți

Operatorii pe biți

Orice programator știe că un computer poate prelucra doar informațiile reprezentate printr-o serie de numere binare (1 și 0). Asta înseamnă că dacă vom păstra numărul 55 în memoria calculatorului, programul stochează de fapt o serie de biți reprezentați ca 00110111. Operatorii pe biți au fost creați pentru a efectua operațiuni pe reprezentarea binară a unui număr, nu pe reprezentarea sa zecimală, pe care oamenii o folosesc zilnic.

Informații Adiționale

Motivul pentru care reprezentarea binară este convenabilă se datorează faptului că se lucrează doar cu două valori, 0 și 1, aceste valori pot fi puse în aplicare în circuite Boolene. În electronică, inclusiv în cipurile de computer, 1 este reprezentat ca „având electricitate”, sau +5V, în timp ce 0 înseamnă „fără electricitate”, masă, sau -5V. Vom examina mai târziu în profunzime aceste concepte, dar pentru moment, amintiți-vă doar că un computer exprima totul prin utilizarea numerelor binare, iar operatorii pe biți pot fi utilizați pentru a efectua aritmetică direct pe aceste valori.

Pentru că, practic, acceptă doar două valori ca operanzi și rezultate (0 sau 1, adevărat sau fals), operatorii pe biți sunt similari cu cei logici. Probabil că vă întrebați cum este posibil acest lucru, operatorii logici având de a face cu valori de adevărat sau fals, în timp ce operatorii binari, cu 0 și 1. Acest lucru se datorează faptului că în programare, aceste valori sunt adesea interschimbabile, la nivel de concept. Putem spune cu o valoare binară este „falsă” atunci când este 0, și „adevărată”, atunci când este 1. Desigur, nu se pot utiliza valori Boolene pentru calcule pe biți, trebuie să furnizați biți, nu booleni, dar principiile sunt similare. Ceea ce se aplică pentru valorile boolene, se aplică si pentru cele binare. De exemplu, operatorii pe biți au 4 operații: AND (&), OR (|), XOR (^) și NOT (~), la fel ca și cele logice.

După cum se poate vedea, tabelul și valorile de mai sus sunt destul de asemănătoare cu tabelul operatorilor logici. Singura diferență este în notarea folosită de cele două concepte, de exemplu OR logic este &&, în timp ce OR binar este &, NOT logic este !, pe cand NOT binar este ~ (cunoscut si ca operatorul binar complementarbitwise complement operator), etc.

Cu toate acestea, ar trebui să știți că aici asemănările dintre operatorii binari și logici se opresc. Spre deosebire de cei logici, operatorii pe biți au două operații suplimentare: deplasare de biți spre stânga (<<) și deplasare de biți spre dreapta (>>). Pe valori numerice, aceste operații mută biții valorilor la stânga sau la dreapta, și ar trebui să știți că biții care nu se încadrează în număr sunt pierduți pentru totdeauna și înlocuiți cu 0.

Modul în care se realizează operația de deplasare pe biți este următorul: în partea stângă a operatorului plasăm numărul asupra căruia efectuăm operația, în timp ce în dreapta specificăm un număr care indică numărul de biți cu care vrem să deplasăm. Ca un exemplu, 3 << 2  înseamnă că vrem să se mutăm biții numărului trei la stânga, de două ori. Dacă veți studia un tabel de conversie decimal-binar, veți observa că numărul 3 este reprezentat în binar ca 0000 0011. După ce vom efectua operația de deplasare pe biți, noul număr binar va fi 0000 1100, pentru că am mutat biții cu două locuri la stanga. Privind același tabel binar-zecimal, veți vedea că 0000 1100 în zecimal este 12.

Pentru a înțelege mai bine pierderea de biți, imaginați-vă același număr inițial 0000 0011 (3), pe care vom efectua o operație de deplasare spre dreapta, cu un singur loc: 3 >> 1 . În acest caz, 0000 0011 (3) va deveni 0000 0001 (1), pierzând un bit semnificativ.

Informații Adiționale

Ca și concept, operația de deplasare pe biți poate fi imaginată ca înmulțire (deplasare bit stânga) sau împărțire (deplasare bit dreapta) printr-o putere a lui 2. Acest lucru se datorează naturii sistemului binar în sine, care are doar 2 valori, folosind puteri ale lui 2 pentru a reprezenta înmulțirea și împărțirea.

Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip:

 

EXERCISES
1. Scrieți o expresie care verifică dacă al treilea bit al unui număr întreg dat este 1 sau 0.

Soluție


Instrucțiuni: Folosiți operatorul pe biți AND  pe numărul curent și numărul care are 1 doar în al treilea bit (de ex. numărul 8, dacă numărarea biților începe de la 0).

Tags: ,

Leave a Reply



Follow the white rabbit