Sisteme de numerație

Bază~14 min5 pași

De ce contează?

Pe un ceas, „3" la ore înseamnă altceva decât „3" la minute. Poziția dă valoarea. La fel funcționează numerele: în 305, primul 3 valorează 300, nu 3. Această idee — poziția schimbă valoarea — stă la baza oricărui sistem de numerație.

Sistemul pozițional

Într-un sistem pozițional în baza b, fiecare poziție valorează o putere a lui b. În zecimal (baza 10), pozițiile sunt 1, 10, 100, 1000...:

cifre
3
0
5
valoare
100
10
1
305 în baza 10 = 3·100 + 0·10 + 5·1. Fiecare poziție valorează o putere a bazei.

Deci 305 = 3·10² + 0·10¹ + 5·10⁰.

Orice bază funcționează la fel

În baza b:

  • Cifrele permise sunt 0 ... b−1.
  • Pozițiile valorează b⁰, b¹, b², ... (de la dreapta).
BazăNumeCifre
2binar0, 1
8octal0...7
10zecimal0...9
16hexazecimal0...9, A...F
Observația-cheie

Calculatorul lucrează intern în baza 2 (binar), fiindcă un circuit are doar două stări: curent / fără curent, adică 1 / 0. De aceea binarul e baza fundamentală în informatică.

Cum citești un număr binar

Numărul binar 1011 se „desface" pe puteri ale lui 2:

biți
1
0
1
1
valoare
8
4
2
1
1011₂ = 1·8 + 0·4 + 1·2 + 1·1 = 11. Aduni valorile pozițiilor unde bitul e 1.

Aduni valorile pozițiilor unde bitul e 1: 8 + 2 + 1 = 11.

Verificarea unei cifre valide

O cifră c e validă în baza b doar dacă 0 ≤ c < b:

#include <iostream>
using namespace std;

int main() {
    int cifra, baza;
    cin >> cifra >> baza;
    if (cifra >= 0 && cifra < baza) {
        cout << "cifra valida\n";
    } else {
        cout << "cifra INVALIDA pentru baza " << baza << "\n";
    }
    return 0;
}

Pentru cifra = 8, baza = 2 → invalid (în binar există doar 0 și 1).

Complexitate

Citirea valorii pozițiilor unui număr cu k cifre e O(k) — proporțional cu numărul de cifre. Conversiile efective le vezi în lecția următoare.

Greșeli frecvente

Capcane reale la sisteme de numerație:

  • Cifră ≥ bază: scrii „1 2 0" în baza 2 — invalid, fiindcă 2 nu există în binar. Cifrele merg doar până la b−1.
  • Confuzi valoarea cu scrierea: 1011 în binar nu e o mie unsprezece, ci 11. Aceeași secvență de cifre înseamnă altceva în fiecare bază.
  • Ordinea pozițiilor: poziția unităților (b⁰) e cea din dreapta, nu din stânga.
  • Baza 1 sau 0: nu există sistem pozițional cu baza < 2.

De reținut

  • Sistem pozițional: fiecare poziție valorează o putere a bazei; cifrele merg 0...b−1.
  • Calculatorul lucrează în baza 2 (două stări: 0/1).
  • Valoarea = suma cifră · putere-a-bazei; poziția unităților e cea din dreapta.

Întrebarea 1 / 3

Ce înseamnă că sistemul zecimal este „pozițional”?