Computadors i sistemes de numeració¶
És fàcil dir per a què serveixen cadascuna de les màquines elèctriques i electròniques que hi ha a les nostres cases: una rentadora renta la roba, el frigorífic refresca el menjar i el forn serveix per a cuinar. Totes aquestes són màquines que serveixen per a un únic propòsit.
Els computadors, en canvi, són màquines de propòsit general. Açò significa que poden ser utilitzades per a una gran quantitat de tasques diferents, com portar la comptabilitat, escriure, jugar, veure pel·lícules, enviar correus…, i així una llista inacabable, que a més es pot veure ampliada si demà mateix apareix un nou programa que li dona als computadors una nova funcionalitat inexistent fins ara.
Els programes són, precisament, la clau que fa als computadors diferents de la resta de màquines: els computadors són màquines versàtils perquè són màquines programables. Açò significa que en un moment donat podem dir-li al computador què és el que cal que faci.
En general, els computadors son màquines que serveixen per processar informació. El seu funcionament consisteix en acceptar dades per un dispositiu d’entrada, manipular-les aritmètica o lògicament seguint les instruccions d’un programa i presentar el resultat a través d’un dispositiu de sortida.
Per a definir el que és un programa cal definir primer qué és un algorisme: una sèrie de passos que cal seguir d’una manera determinada per tal de realitzar una tasca. Un programa és un cas particular d’algorisme que està expressat de tal manera que és un computador el que el realitza.
Per exemple: els passos que cal seguir de manera repetitiva per fer una divisió és un algorisme i si expressem aquestos passos de tal manera que els puga entendre i realitzar un computador tindrem un programa.
Codificació de la informació¶
Tal i com hem dit, els computadors són màquines encarregades del tractament de la informació. Aquesta informació està codificada en una seqüència de símbols que representen les dades. Per exemple, els antics egipcis empraven símbols per representar paraules i actualment altres símbols representen per a nosaltres lletres i nombres. Per a que un computador puga tractar amb un cert fragment d’informació, aquest haurà d’estar codificat amb un sistema simbòlic que el computador puga manipular. Açò ens porta a la qüestió dels sistemes de numeració.

El sistema de numeració decimal¶
El sistema numèric que utilitzem normalment és un sistema posicional de base 10. Diguem que és posicional perquè és important la posició que ocupa cada símbol. Per exemple en la xifra 919 aparèix dues vegades el simbol «9» i cadascuna d’elles representa un valor diferent. D’altra banda diguem que és de base 10 perquè disposem de 10 símbols diferents per representar les quantitats (concretament 0, 1, 2, 3, 4, 5, 6, 7, 8 i 9).
Com a comparació, altre sistema de numeració que potser conèixes és el romà. Aquest és un sistema de numeració no posicional, ja que el simbol X sempre representa una desena independentment de la posició que ocupe, i disposa únicament de set simbols (I, V, X, L, C, D i M).
Per tal d’entendre el que signifiquen els diferents símbols d’una xifra expressada amb el sistema de numeració decimal utilitzarem la xifra 325(10 (Aquesta notació significa el nombre 325 en base 10, el subíndex indica quina és la base del sistema numèric utilitzat).
El fet que un símbol es trobe a la dreta significa que representa les unitats. Així el 5 representa el valor de cinc unitats.
La següent posició estarà ocupada per un símbol que valdrà deu vegades més i representa les decenes. Per tant el símbol 2 representa 2 * 10 unitats.
La posició ocupada per el signe «3» fa que el valor d’aquest siga deu vegades l’anterior i representa les centenes o 3 * 102 unitats.
Finalment podem descomposar la xifra de la manera següent:
325(10 = 300 + 20 + 5
és a dir
325(10 = 3 * 100 + 2 * 10 + 5 * 1
o també
325(10 = 3*102 + 2*101 + 5*100
El sistema de numeració binari¶
Existeixen infinits sistemes de numeració teòricament possibles que utilitzen dos, tres, vuit, dos cents cinquanta tres o un milió de símbols diferents. Naturalment no tots els sistemes de numeració s’utilitzen, però si que hi ha alguns sistemes que resulten interessants diferents del sistema de numeració decimal. Un d’aquestos sistemes de numeració és el sistema de numeració en base dos, també anomenat binari. Aquest sistema de numeració utilitza únicament dos simbols distints, per exemple el “0” i el “1”. Exactament el matèix llenguatge que entenen els nostres computadors.
El funcionament és similar al que hem vist en el sistema binari. Podem utilitzar com exemple la xifra 1011.
El símbol «1» a la dreta representa les unitats.
El símbol «1» que hi ha a continuació té un valor que és el doble que el anterior (no deu vegades més com en el sistema de base 10, sinó solament el doble ja que és un sistema de base 2).
El símbol «0» de la seua esquerra val dos vegades més que el anterior, és a dir 22 unitats.
I finalment el símbol «1» que es troba a l’esquerra val el doble que el anterior, és a dir 23 unitats.
El podem descomposar igual que hem fet abans.
1011(2 = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20
Transformar un nombre en base 2 a base 10¶
Al descomposar un nombre en base 2 de la manera anterior solament cal fer unes poques operacions més per convertir-lo a altre sistema de numeració. Per exemple, anem a transformar el nombre 1110110 en base 2 al sistema de numeració decimal.
1110110(2 = 1*26 + 1*25 + 1*24 + 0*23 + 1*22 + 1*21 + 0*20
per tant
1110110(2 = 64 + 32 + 16 + 4 + 2
i finalment sols cal fer la suma
1110110(2 = 118(10
Transformar un nombre en base 10 a base 2¶
També es pot transformar un nombre en base 10 a binari. Cal dividir el nombre successivament per dos i agafar després el residu de les divisions (que sempre serà 1 o 0) en ordre invers.
Anem a transformar el nombre 114(10 al sistema de numeració en base 2.
En primer lloc cal dividir 114 entre 2. El resultat és exactament 57, amb residu 0. Ho expressarem així:
114 = 57 * 2 + 0
Ara fem la mateixa operació amb el nombre 57. En aquest cas el resultat de la divisió és 28 però amb residu 1. Per tant ho expressem així:
57 = 28 * 2 + 1
A continuació repetim l’operació fins que el resultat de la divisió és 0.
28 = 14 * 2 + 0
14 = 7 * 2 + 0
7 = 3 * 2 + 1
3 = 1 * 2 + 1
1 = 0 * 2 + 1
El resultat de l’última divisió és 0, per tant hem acabat. El nombre en base dos que busquem l’obtenim agafant els residus de les divisions des de l’última fins la primera.
114(10 = 1110010(2
El sistema de numeració hexadecimal¶
Altre sistema numèric molt utilitzat als computadors és el de base 16 o hexadecimal. En aquest sistema existeixen 16 signes diferents per expressar les quantitats (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E i F). A la taula següent tens alguns valors expressats en els tres diferents sistemes numèrics que hem vist.
Base 10 |
Base 2 |
Base 16 |
---|---|---|
0 |
0 |
0 |
1 |
1 |
1 |
2 |
10 |
2 |
3 |
11 |
3 |
4 |
100 |
4 |
5 |
101 |
5 |
6 |
110 |
6 |
7 |
111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
A |
11 |
1011 |
B |
12 |
1100 |
C |
13 |
1101 |
D |
14 |
1110 |
E |
15 |
1111 |
F |
16 |
10000 |
10 |
17 |
10001 |
11 |
18 |
10010 |
12 |
… |
… |
… |
25 |
11001 |
19 |
26 |
11010 |
1A |
27 |
11011 |
1B |
Les transformacions entre el sistema hexadecimal i el decimal es poden fer exactament igual que abans fèiem amb el sistema binari.
Transformar un nombre en base 16 a base 10¶
La transformació del nombre 4D1(16 al sistema decimal és molt semblant a com ho hem fet abans, solament cal recordar que ara la base és 16.
4D1(16 = 4*162 + 13*161 + 1*160
4D1(16 = 1024 + 208 + 1
4D1(16 = 1233(10
Transformar un nombre en base 10 a base 16¶
La transformació del nombre 692(10 a hexadecimal també és molt semblant a com ho hem fet abans en base 2. Dividirem succesivament per la base, que en aquest cas és 16, i el resultat l’obtindrem prenent els residus en ordre invers.
692 = 43 * 16 + 4
43 = 2 * 16 + 11
2 = 0 * 16 + 2
Ara prenem els residus en ordre invers, recordant que el símbol hexadecimal per a la xifra 11 és B.
692(10 = 2B4(16