Representació de la informació

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

Els sistemes informàtics manegen informació. Ja sigui com a entrada, com a procés o com a sortida. Hi ha dos tipus de sistema en funció del tractament que facin de la informació: Els sistemes de flux d'informació en què la informació d'entrada i sortida és la mateixa i els sistemes de tractament de la informació, on la informació és tractada i ofereixen una informació de sortida diferent a la d'entrada. La informació en un sistema informàtic ha d'estar representada per uns símbols que el sistema pugui emmagatzemar o processar. La informació està composta de dades, aquestes dades poden classificar com:

  • Dades Numèrics.
  • Dades alfabètics.
  • Dades alfanumèrics.

Perquè pugui ser emmagatzemada o processada la informació, cal una correspondència entre els símbols i els que utilitza l'ordinador. Això es diu codificació i el contrari descodificació. Per als caràcters alfanumèrics podem utilitzar codificacions com l'ASCII o el EDBCDIC i per als nombres, codificacions basades en el sistema de numeració binari.

Representació de números naturals

El sistema binari és el que utilitzen els ordinadors des dels seus començaments. La raó d' usar és perquè els ordinadors utilitzaven interruptors que podien estar encesos 1 o apagats 0. Amb aquests dos símbols es representa tota la informació que poden emmagatzemar i processar els ordinadors.

Sistema binari vol dir que està en base 2, és a dir, que utilitza els símbols 0 i 1 per representar els nombres.

Com que és un sistema posicional, el valor d'un un símbol depèn de la seva posició. Per que per passar de binari a decimal cal multiplicar el dígit per 2 elevat a la seva posició. Per exemple el número 1101 és igual a 1 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 1 = 13 Per passar de decimal a Binari (o qualsevol base) cal dividir el nombre entre 2 i el resultat de nou entre dos fins que el resultat sigui inferior a 2 i quedar-se amb el resultat i les restes de dreta a esquerra.

Per exemple el número 13 en base 10 els dividim entre 2 i tenim de resta 1 i de quocient 6 que dividit entre dos dóna de resta 0 i de quocient 3 que dividit entre dos dóna de resta 1 i de quocient 1 pel que el nombre resultant en base 2 és 1101.

Si hi ha decimals, per passar de binari a decimal cal multiplicar el símbol per 2 elevat a la seva posició negativa i sumar. I per passar de decimal a binari cal separar els enters dels fraccionaris, els sencers es fan com sempre i els fraccionaris es multipliquen successivament per 2 i agafant la part sencera:

0,35 * 2 = 0,70 -----------------0

0,70 * 2 = 1,40 -----------------1

0,40 * 2 = 0,80 -----------------0

0,80 * 2 = 1,60 -----------------1

0,60 * 2 = 1,20 -----------------1


Així que 0,35 = 0,01011

Com veiem, un nombre decimal amb xifres decimals finites pot esdevenir un nombre binari amb decimals infinits. Això pot produir alguns problemes amb els arrodoniments en càlculs fets amb ordinador.

Aquesta forma de passar de decimal a binari i de binari a decimal és extrapolable a totes les bases. Normalment per passar d'una base diferent de 10 a altres distintes a 10 és necessari passar-la a base 10 i després a l'altra base. Però més endavant veurem que existeixen mètodes més senzills per a determinades bases.

Octal

El sistema octal és un sistema en base 8, de manera que els símbols que utilitza són:

0,1,2,3,4,5,6,7

Mentre que el mètode per passar del sistema octal al decimal és el mateix que el binari, el mètode per passar a binari és bastant més senzill.

Com que 8 és potència de 2, per passar de octal a binari només cal substituir cada xifra pel seu equivalent en binari amb 3 dígits.

Per exemple:

234 base 8 és igual a 010.011.100 = 10.011.100 en binari Per passar de binari a octal només cal agrupar en grups de 3 xifres el nombre a binari començant per la dreta i substituir-lo per el seu valor en octal:

1100110101101 -> 001 100 110 101 101 = 14655 en octal

Si falten xifres es substitueixen per zeros a l'esquerra. En cas que tingui decimals es utilitzar el mateix sistema sense problemes, però els zeros s'afegeixen a la dreta en el cas que faltin.

Hexadecimal

El sistema Hexadecimal és a base 16, els símbols que fa servir són:

0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F

El hexadecimal és un sistema molt utilitzat per representar nombre binaris sense haver de escriure tants nombres. I ja que és potència de 2 com el octal, el pas de Hexadecimal a Binari és igual de senzill. En aquest cas els grups són de 4 xifres.

Operacions en binari

Com que els ordinadors treballen amb binari cal esmentar les operacions que es poden fer sobre nombres binaris, les lògiques i les aritmètiques. Hi ha 4 operacions lògiques que es poden realitzar amb nombres binaris: AND, OR, NOT, XOR. Aquestes operacions es realitzen bit a bit.

  • L'operació AND té resultat 1 només si els dos operands tenen com valor 1
  • L'operació OR té resultat 0 només si els dos operands tenen com valor 0
  • L'operació XOR té resultat 1 si els dos operands són distintintos un de l'altre.
  • L'operació NOT inverteix el bit, si val 1 és 0 i si val 0 és 1

Per sumar en binari és igual que en decimal, si els sumands donen més que 1 "Portem", això es diu arrossegament o carry.

Per restar és igual que en el sistema decimal, en el cas de 0 -1 el que fem és prendre una unitat prestada de la posició següent que serà retornada sumada. Per exemple:

1110101
- 11001
-----------
1011100

El producte és molt senzill en binari perquè el 0 multiplicat per qualsevol és 0 i el 1 és el neutre de la multiplicació. El mètode és el mateix que en decimal.

La divisió es realitza de la mateixa manera que en decimal, cal dir que les restes en la divisió es fan en binari.

Representació de números sencers

BCD

Serveix per codificar nombres decimals a binari (Binary Coded Decimal) S'utilitzen quatre bits per a cada xifra en decimal del nombre. Per exemple:

1982 = 0001 1001 1000 0010

Hi ha diversos tipus de BCD:

  • Natural: En el qual cada xifra correspon amb el seu codi en binari.
  • Aiken: En el qual cada xifra és el complement a 9 de la seva simètrica. Això fa que les

operacions de resta i divisió es puadan fer amb més facilitat.

  • Excés a 3: S'obté sumant 3 a la xifra en binari també és complement a 9 del

seva simètric.

Si Volem representar el signe podem utilitzar el BCD empaquetat ficant al final 1100 per al + o 1101 per al -

Altres en la Wikipedia: [1]

Representació de números reals

Per representar reals s'usa el sistema de coma flotant. Aquest sistema permet representar nombres amb decimals i nombres molt grans i molt petits. les operacions amb nombres en coma flotant són més complexes i per a elles hi ha circuits específics anomenats coprocessadors matemàtics.

Un número R es representa de la següent manera:

R = M x B ^ E

On:

  • M és la mantissa, té signe i sol ser un nombre fraccionari
  • B és la base de l'exponent que sol ser 2
  • I és l'exponent.

El sistema és igual a la notació científica normalitzada en què la mantissa no té part sencera i la primera xifra després de la coma és diferent de 0. En la memòria de l'ordinador aquest és l'ordre dels camps:

Signe Exponent Mantisa

Segons l'estàndar IEE 754, amb 32 bits (precisió simple) per al signe s'usa 1 bit, 8 pel exponent i 23 per a la mantissa.

En 64 bits (precisió doble) s'usa 1 per al signe, 11 per l'exponent i 52 per a la mantissa.

Ja que el primer bit de la mantissa sempre seria 1, aquest es pot obviar usant la técnica del bit implícit.

L'exponent està en excés 127 per 32 bits i 1023 per a 64 bits.

Hi ha desbordament si:

  • El nombre en valor absolut és tan gran que no pot ser representat. overflow
  • El nombre en valor absolut és tan a prop del zero que que no es pot representar.

Underflow.


Precisió simple 32-bits

  1    8               23            <-- tamany en bits
 +-+--------+-----------------------+
 |S|  Exp   |  Mantisa              |
 +-+--------+-----------------------+
 31 30    23 22                    0   <-- índex del bit (0 a la dreta)
    desplaçat +127


on S és el bit de signe i Exp és el camp exponent. (Per al signe: 0 = Positiu; 1 = Negatiu).

El exponent és desplaçat en l'un nombre en precisió simple, un exponent en el rang -126 a +127 és desplaçat mitjançant la suma de 127 per obtenir un valor en el rang 1 a 254 (0 i 255 tenen valors especials per al 0 infinit o números imaginaris). Quan s'interpreta el valor en coma flotant, el nombre és desplaçat de nou per obtenir l'exponent real.

El conjunt de valors possibles poden ser dividits en els següents:

  • zeros
  • Nombres normalitzats
  • Nombres desnormalizados
  • infinits
  • NaN (¬ I, no és un nombre, com per exemple, l'arrel quadrada d'un nombre negatiu)

Exemple:

Tenim el número: -118,625

El signe serà 1 perquè és negatiu.

Representem el número sense signe: 1110110,101 En binari.

El desplacem la coma 6 posicions per a deixar sols un 1 com a part sencera: 1110110,101=1,110110101·26

La mantisa és la part que queda en decimal omplint de 0 fins als 23 bits de la mateixa. (11011010100000000000000).

L'exponent és 6, el pasem a binari i li sumem 127 per a representarlo. 133=10000101

Resultat:

  1     8               23             <-- tamany en bits
 +-+--------+-----------------------+
 |S|  Exp   |     Mantisa           |
 |1|10000101|11011010100000000000000|
 +-+--------+-----------------------+
 31 30    23 22                    0   <-- índex del bit (0 a la dreta)
    desplaçat +127

Precisió doble 64-bits

  1     11              52             <-- tamany en bits
 +-+--------+-----------------------+
 |S|  Exp   |  Mantisa              |
 +-+--------+-----------------------+
 63 62    52 51                    0   <-- índex del bit (0 a la dreta)
    desplaçat +1023

Anem a representar el mateix número -118,625

El signe és 1, la mantisa és 1101101010000000000000000000000000000000000000000000 (52 bits)

L'exponent si canvia, perquè l'excés és a 1023. Per tant, 1023+6 = 1029 = 10000000101

El resultat final:

  1        11                                 52             <-- tamany en bits
 +-+--------------+------------------------------------------------------+
 |1| 100000000101 | 1101101010000000000000000000000000000000000000000000 |
 +-+--------------+------------------------------------------------------+
 63 62           52 51                        0   <-- índex del bit (0 a la dreta)
    desplaçat +1023

Representació de Caracters

Els codis alfanumèrics serveixen per emmagatzemar caràcters en format binari. Tenen les següents característiques:

  • Un conjunt de caràcters que solen ser la xifres decimals, les lletres del alfabet en majúscules i minúscules, els signes de puntuació, caràcters especials i caràcters de control.
  • Una longitud del codi binari que és el nombre de bits usats per codificar un caràcter
  • Un màxim de caràcters determinat pel codi binari. La longitud del codi binari ha anat augmentant. En principi eren 6 bits, el que limitava el conjuto de caràcters a 64. Més tard es van usar 7 bits en codis com el ASCII (American Estàndard Code for Information Interchange) en l'actualitat s'usen codis de 8 bits com l'ASCII estès que pot representar 256 caràcters.

Existeixen taules diferents de caràcters segons l'idioma que s'usi. Però si és necessari utilitzar diversos idiomes s'han d'usar codis de doble byte com l'estàndard UNICODE que permet 65536 símbols diferents.

= ASCII

ASCII (de l'anglès American Standard Code for Information Interchange) és un Codi Estàndard Americà per a l'Intercanvi d'Informació. L'ASCII és un joc de caràcters que assigna valors numèrics (del 0 al 127, 7 bits de longitud) a les lletres, xifres i signes de puntuació. Existeixen codis ASCII extensos de 256 caràcters (del 0 al 255, un byte), que permeten representar caràcters no anglesos com poden ser accents o la «ç». Els caràcters de la part superior (127 a 255), varien d'un estàndard tècnic a un altre, encara que el més utilitzat és el ISO Latin-1 o ISO-8859-1.

El codi ASCII utilitza 7 bits per representar els caràcters, encara que inicialment emprava un bit addicional (bit de paritat) que s'usava per detectar errors en la transmissió. Sovint es diu incorrectament ASCII a uns altres codis de caràcters de 8 bits, com l'estàndard ISO-8859-1 que és una extensió que utilitza 8 bits per proporcionar caràcters addicionals usats en idiomes diferents a l'anglès, com el català.

ASCII va ser publicat com a estàndard per primera vegada en 1967 i va ser actualitzat per última vegada en 1986. En l'actualitat defineix codis per 33 caràcters no imprimibles, dels quals la majoria són caràcters de control obsolets que tenen efecte sobre com es processa el text, més altres 95 caràcters imprimibles que els segueixen en la numeració (començant pel caràcter espai).

Gairebé tots els sistemes informàtics actuals utilitzen el codi ASCII o una extensió compatible per representar textos i per al control de dispositius que manegen text.

Binari Decimal Hex Abreviatura Repr AT Nom/Significat
0000 0000 0 00 NUL ? ^@ Caràcter Nul
0000 0001 1 01 SOH ? Inici

d'Encapçalat

0000 0010 2 02 STX ? ^B Inicio de Text
0000 0011 3 03 ETX ? ^C Fi de Text
0000 0100 4 04 EOT ? ^D Fi de Transmissió
0000 0101 5 05 ENQ ? ^I Enquiry
0000 0110 6 06 ACK ? ^F Acknowledgement
0000 0111 7 07 BEL ? ^G Timbri
0000 1000 8 08 BS ? ^H Reculada
0000 1001 9 09 HT ? ^I Tabulació horitzontal
0000 1010 10 0A LF ? ^J Line feed
0000 1011 11 0B VT ? ^K Tabulació Vertical
0000 1100 12 0C FF ? ^L Form feed
0000 1101 13 0D CR ? ^M Carriage return
0000 1110 14 0I SOTA ? ^N Shift Out
0000 1111 15 0F SI ? ^O Shift In
0001 0000 16 10 DLE ? ^P Data Link Escapi
0001 0001 17 11 DC1 ? ^Q Device Control 1 ? oft. XON
0001 0010 18 12 DC2 ? ^R Device Control 2
0001 0011 19 13 DC3 ? ^S Device Control 3 ? oft. XOFF
0001 0100 20 14 DC4 ? ^T Device Control 4
0001 0101 21 15 NAK ? ^O Negative Acknowledgement
0001 0110 22 16 SYN ? ^V Synchronous Aneu-li
0001 0111 23 17 ETB ? ^W End of Trans. Block
0001 1000 24 18 CA ? ^X Cancell
0001 1001 25 19 EM ? ^I End of Medium
0001 1010 26 1A SUB ? ^Z Substitute
0001 1011 27 1B ESC ? ^[ or ESC Escapi
0001 1100 28 1C FS ? ^\ File Separator
0001 1101 29 1D GS ? ^] Group Separator
0001 1110 30 1I RS ? ^^ Record Separator
0001 1111 31 1F US ? ^_ Unit Separator
0111 1111 127 7F DE EL ? ^?, Delete, or Backspace Delete