Cuprins:
Video: Scrierea in baza 10, numărarea în baza 2 2024
variabilele C ++ sunt stocate intern ca numere binare. Numerele binare sunt stocate ca o secvență de valori 1 și 0 cunoscute ca biți. De cele mai multe ori, nu trebuie să rezolvi numerele la nivel de biți; cu toate acestea, există ocazii atunci când face acest lucru este convenabil. C ++ oferă un set de operatori în acest scop.
Așa-numitele operatori logici biți operează pe argumentele lor la nivelul de biți. Pentru a înțelege modul în care funcționează, examinați cum computerele stochează variabilele.
Sistemul numeric zecimal
Numerele cu care vă cunoașteți sunt numite numerele zecimale deoarece ele se bazează pe numărul 10. În general, programatorul exprimă C ++ variabile ca numere zecimale. Astfel, ați spune că valoarea var este, de exemplu, 123.
Un număr ca 123 se referă la 1 * 100 + 2 * 10 + 3 * 1 . Fiecare dintre aceste numere de bază - 100, 10 și 1 - este o putere de 10.
123 = 1 * 100 + 2 * 10 + 3 * 1Exprimat într-un mod ușor diferit:
2 <10 1 + 3 * 10 0 Amintiți-vă că orice număr la zero este 1. sistemul de numărare provine, probabil, din faptul că oamenii au 10 degete, instrumentele originale de numărare. Alternativa ar fi fost baza 20.
octal
ar fi funcționat la fel de bine:
12310 = 1 * 8 2
+ 7 * 8 + 3 * 8 0 = 173 8 Micile 10 și 8 se referă la sistemul de numerotare, 10 pentru zecimal (baza 10) și 8 pentru octal (baza 8). Un sistem de numărare poate folosi orice bază pozitivă. Sistemul numeric binar Calculatoarele au în esență două degete. (Poate de aceea calculatoarele sunt atât de prost: fără un deget opus, nu pot înțelege nimic și apoi din nou, poate nu.) Calculatoarele preferă să numere folosind baza 2. Numărul 123 10 ar fi exprimat ca:
123
10
= 0 * 128 + 1 * 64 + 1 * 32 + 1 * 2 Este întotdeauna convenția de a exprima numere binare utilizând 4, 8, 32 sau 64 de cifre binare, chiar dacă cifrele de conducere sunt zero. Acest lucru se datorează și modului în care computerele sunt construite intern. Deoarece termenul
cifra se referă la un multiplu de zece, o cifră binară se numește bit
. Termenul provine de la cifra b (b) (-it).Opt biți alcătuiesc un octet. Un cuvânt este, de obicei, fie doi sau patru octeți. Cu o bază atât de mică, este necesar să se folosească un număr mare de biți pentru a exprima cifre. Este inconvenient să folosiți o expresie, cum ar fi 01111011
2, pentru a exprima o asemenea valoare luminoasă ca 123 10 . Programatorii preferă să exprime numerele pe unități de octeți sau opt biți. O singură cifră de patru biți este în esență baza 16, deoarece patru biți pot exprima până la orice valoare de la 0 la 15. Baza 16 este cunoscută ca sistemul de numărare hexazecimal
. Hexadecimal este adesea contractat la simplu hex. Hexadecimal utilizează aceleași cifre pentru numerele de la 0 la 9. Pentru cifrele cuprinse între 9 și 16, hexazecimal utilizează primele șase litere ale alfabetului: A pentru 10, B pentru 11 și așa mai departe. Astfel, 123 10 devine 7B
16 . 123 = 7 * 16 1
+ B (adică 11) * 16 0 = 7B 16 , 32 sau 64 de biți, aceștia preferă în mod similar exprimarea numerelor hexazecimale în cifre hexazecimale de 1, 2, 4 sau 8, chiar și atunci când cifrele de conducere sunt 0.
În cele din urmă, este incomod să exprimați un număr hexazecimal cum ar fi 7B < 16 folosind un index, deoarece terminalele nu acceptă indiciile. Chiar și pe un procesor de texte, este incomod să se schimbe fonturile din și din subscript doar pentru a tasta două cifre. Prin urmare, programatorii folosesc convenția de a începe un număr hexazecimal cu un 0x (motivul pentru o astfel de convingere ciudată revine la începutul lui C). Astfel, 7B devine 0x7B. Folosind această convenție, 0x7B este egal cu 123 (în timp ce 0x123 este egal cu 291.) Toți operatorii matematici pot fi executați pe numere hexazecimale în același mod în care sunt aplicați numerelor zecimale. Motivul pentru care nu putem efectua o multiplicare cum ar fi 0xC * 0xE în capul nostru are mai mult de-a face cu tabelele de multiplicare pe care le-am învățat în școală decât despre orice limitare în sistemul numeric.