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 |
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ă | Nume | Cifre |
|---|---|---|
| 2 | binar | 0, 1 |
| 8 | octal | 0...7 |
| 10 | zecimal | 0...9 |
| 16 | hexazecimal | 0...9, A...F |
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 |
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.
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.