Biți, ASCII și numere: cum „gândește” calculatorul
Pe tablă te așteaptă azi un șir ciudat: 01000100 01000001 01000011 01001001 01000001. La finalul orei îl vei citi fără ajutor — și vei înțelege că exact așa arată, în adânc, orice mesaj, orice notă din catalog și orice melodie. Lecția trecută, „Mărimi analogice, date digitale", s-a oprit în momentul în care senzorul preda ștafeta: mărimea devenea numere. A rămas o întrebare deschisă: în ce formă ține calculatorul numerele acelea?
La finalul lecției vei ști să numeri în binar, să treci numere naturale din baza 10 în baza 2 și înapoi și să codifici un text cu ajutorul codului ASCII.
De ce doar 0 și 1
Calculatorul e construit din milioane de comutatoare minuscule, iar un comutator sigur pe el știe exact două stări: trece curent sau nu trece. Deschis sau închis. Nu există „pe jumătate deschis" de încredere — la vitezele la care lucrează un procesor, orice stare intermediară ar fi o sursă de erori. Așa că întreaga informatică s-a construit pe cea mai mică unitate de informație posibilă.
Un singur bit spune puțin: da sau nu. Dar biții pot fi puși unul lângă altul, și fiecare bit adăugat dublează numărul de combinații: 2 biți dau 4 combinații, 3 biți dau 8, iar 8 biți dau 256. Cu destui biți, poți da un cod oricărui lucru de pe lume.
Numărăm în binar
În baza 10, pozițiile cifrelor valorează 1, 10, 100, 1000 — puteri ale lui 10. În baza 2, aceeași idee, dar pozițiile valorează puteri ale lui 2: 1, 2, 4, 8, 16, 32... Fiecare bit spune dacă valoarea poziției lui se adună la total sau nu.
Din binar în zecimal, deci: aduni valorile pozițiilor unde stă un 1. Invers, din zecimal în binar, mergi lacom de la stânga: pentru 13, cel mai mare cartonaș care încape e 8 (rămâne 5), apoi 4 (rămâne 1), apoi 1. Deci 13 = 8 + 4 + 1 = 1101 în baza 2.
Jocul numărătorii binare
Teoria se fixează la tablă, dar binarul intră în reflex printr-un joc. Mâna ta dreaptă are cinci degete — adică cinci biți: degetul mare valorează 1, arătătorul 2, mijlociul 4, inelarul 8, degetul mic 16. Deget ridicat înseamnă bit 1, deget strâns înseamnă bit 0.
Jucați pe perechi, trei runde:
- Numărătoarea. Numărați pe degete de la 0 la 31, pe rând, fără să săriți valori. Trei e degetul mare plus arătătorul; cinci e mijlociul plus degetul mare. Cine greșește o valoare reia de la zero. Primele conflicte apar pe la 7 și 8 — acolo se vede cine a înțeles trecerea: toți biții mici se strâng și se ridică următorul.
- Duelul. Unul arată un număr pe degete, celălalt îl spune în zecimal în cel mult cinci secunde. Cinci puncte câștigă duelul, apoi schimbați rolurile.
- Întrebarea de aur. Care e cel mai mare număr pe care îl poți arăta cu o singură mână? Toate degetele ridicate: 16 + 8 + 4 + 2 + 1 = 31. Cu ambele mâini ai 10 biți — și poți număra până la 1023. Spune-le asta părinților diseară.
Litere din numere: codul ASCII
După pauză trecem de la numere la text — a doua oră e despre litere. Calculatorul nu are nicio idee ce e o literă; el știe doar biți. Soluția, veche de peste 60 de ani, e o convenție: fiecărei litere i se atribuie un număr, mereu același, pe orice calculator din lume.
Fragmentul care ne trebuie azi — literele mari stau frumos în ordine, de la 65 la 90:
| Literă | Cod | Literă | Cod | Literă | Cod | Literă | Cod |
|---|---|---|---|---|---|---|---|
| A | 65 | H | 72 | O | 79 | V | 86 |
| B | 66 | I | 73 | P | 80 | W | 87 |
| C | 67 | J | 74 | Q | 81 | X | 88 |
| D | 68 | K | 75 | R | 82 | Y | 89 |
| E | 69 | L | 76 | S | 83 | Z | 90 |
| F | 70 | M | 77 | T | 84 | spațiu | 32 |
| G | 71 | N | 78 | U | 85 |
Ordinea alfabetică e păstrată în coduri — detaliu deloc întâmplător: datorită lui, calculatorul poate sorta alfabetic comparând pur și simplu numere. Iar acum poți sparge mesajul de pe tablă: 01000100 e 68 în binar (64 + 4), adică D. Continuă singur — sunt cinci litere și numele unei mașini pe care o știi.
Literele noastre cu diacritice — ă, î, ș, ț — nu încap în cei 128 de coduri ASCII. Pentru ele s-a inventat mai târziu Unicode, un „ASCII extins" cu peste 140 000 de caractere, de la ș-ul românesc la ideogramele chinezești. Principiul rămâne neschimbat: caracter, număr, biți.
Mesaje codate între colegi
Ultima parte a orei: fiecare echipă de bancă devine birou de cifru.
- Alege un cuvânt de 4-6 litere mari, fără diacritice — un oraș, un obiect din sală, o materie.
- Scrie codul ASCII zecimal al fiecărei litere, apoi transformă fiecare cod în binar pe 7 biți. Verificați-vă unul pe altul: o singură cifră greșită strică o literă întreagă.
- Dați biletul echipei din spate și primiți unul în schimb. Decodați contra cronometru: binarul în zecimal, zecimalul în literă, literele în cuvânt.
- Runda a doua, pentru echipele rapide: strecurați intenționat o eroare de un bit în mesaj. Poate cealaltă echipă să găsească litera stricată și să o repare din context? Exact asta fac, automat, codurile detectoare de erori din rețelele reale.
Exersează
- Transformă în baza 10: 111, 1010, 11001. Apoi în baza 2: 6, 19, 30. Scrie descompunerile, nu doar rezultatele.
- Câte numere naturale diferite poți reprezenta pe 4 biți? Dar pe 8 biți? Scrie regula generală într-o frază.
- Decodifică, folosind tabelul ASCII: 84 73 77 73 83 79 65 82 65. Ce cuvânt ai obținut și câți octeți ocupă el în memorie?
- Provocare. Un coleg susține că, dacă adaugi un bit la o reprezentare, poți reprezenta „cu câteva numere mai mult". Arată-i cu un calcul concret pe 5 și 6 biți de ce se înșală — și formulează corect ce se întâmplă de fapt.
Verifică-te
Se încarcă activitatea…
Se încarcă activitatea…
Se încarcă activitatea…