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ó.

_images/100.png

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