Sunteți pe pagina 1din 23

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

1.- Sistemas numricos.


1.1.- Generalidades.La expresin de una cantidad en cualquier sistema numrico, se basa en la ecuacin 1 que se detalla a continuacin.

W = a n X n + a n 1X n 1 + a n 2 X n 2 + a n 3 X n 3 ..... ..... a 2 X 2 + a 1X 1 + a 0 X 0 + + b1 X -1 + b 2 X -2 + b 3 X - 3 + b 4 X - 4 + .... .... b m X - m donde, X es la base numrica, W es una cantidad numrica expresada en la base numrica X. a n , a n -1 , a n - 2 , ....a 2 , a 1 , a 0 , b1 , b 2 , b 3 , ..... son los elementos del conjunto de nmeros de esa base numrica. m, n son elementos del conjunto de los nmeros naturales.
Por ejemplo, en la base numrica
3 2

(ecuacin 1)

10, para W = 5601,3407 : + 3 10 -1 + 4 10 - 2 + 0 10 -3 + 7 10 4

5601,3407 = 5 10 + 6 10 + 0 10 1 + 1 10 0

Un accidente evolutivo ha llevado a los seres humanos a usar la base numrica X=10. Esto significa que en base 10 expresamos cualquier cantidad numrica real y positiva, usando la forma indicada en la ecuacin 1. Si la cantidad es negativa, introducimos un smbolo adicional con el fin de indicar que la cantidad es menor que cero. En los casos prcticos buscamos los valores apropiados para n y m, segn el valor y segn la cantidad de cifras significativas enteras y fraccionarias que deseamos expresar. Un asunto importante a destacar se refiere a los siguientes dos hechos, comunes para cualquier base numrica:
I) Desplazar las cifras de la cantidad numrica un lugar a la derecha, manteniendo la posicin del separador fraccionario, equivale a dividir la cantidad por la base numrica. Si esta base es 10, entonces, W = 2345,6789 Z=234,56789 entonces Z= W/10. Si es necesario completar la cantidad de dgitos enteros, se puede rellenar con 0 (Z = 0234,56789). Desplazar las cifras de la cantidad numrica un lugar a la izquierda, manteniendo la posicin del separador fraccionario, equivale a multiplicar la cantidad por la base numrica. Si esta base es 10, entonces, W = 2345,6789 Z=23456,7890 entonces

II)

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

Z= W*10. Si es necesario completar la cantidad de dgitos fraccionarios, se rellena con 0 (Z=23456, 7890).

Entonces, la inclusin de uno o ms ceros tanto al lado izquierdo de la expresin (lado de los enteros) como al lado derecho (lado de la fraccin) no aportan a la expresin. La demostracin para los hechos planteados I) y II) anteriormente, es simple. Basta con dividir y multiplicar ambos lados de la ecuacin 1 por la base numrica X. Entonces se deduce las expresionas para W/X y para W*X. Es importante tomar nota que los dos hechos anotados son vlidos para cualquier base numrica.

1.2.- La base numrica 2, o el Sistema Binario.


Esta base es la que usan las mquinas computacionales actuales. Esta base numrica hace uso de dos valores, representados como 0 y 1, los que en la tecnologa corresponden a niveles de tensin elctrica aproximadamente iguales a 0 Volts y a 5 Volts. De esta forma, cualquier cantidad numrica deber expresarse haciendo uso slo de este par de smbolos, llamados el bit 0 y el bit 1. La tabla 1.1 siguiente ilustra como se desarrolla el sistema numrico binario. La columna Dec expresa la equivalencia en base numrica 10, o el nmero en Decimal. En esta tabla, la columna izquierda corresponde al conjunto de nmeros binarios sin signo, o absolutos. Apreciamos que el bit menos significativo, aquel que se encuentra ms hacia el lado derecho, cambia cada vez que la cantidad cambia en 1 (o en 2 elevado a 0). Luego los cambios se producen cada vez que la cantidad crece, en 2 ( 2 elevado a 1), luego cada 4 ( 2 elevado a 2), cada 8 ( 2 elevado a 3), ... y as ... Se ha separado los conjuntos de 4 bits en una cantidad, slo para facilitar la visin del lector. Se acostumbra usar la siguiente notacin para evitar confusiones al expresar una cantidad. Si anotamos 0100101B, entenderemos que se trata de una expresin en base numrica Binaria. Si anotamos 5610H, entenderemos que esa cantidad est expresada en base numrica Hexadecimal o base 16 (esta base se expondr a continuacin). Luego, si se indica una cantidad sin especificar la base numrica, subentendemos que se refiere a cantidades expresadas en base decimal o 10. Por ejemplo, tanto 10011 como 12345 son cantidades del sistema numrico decimal. 2

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

Consideremos ahora la transformacin de una cantidad decimal en binario. Para ello recordamos que una cantidad cualquiera W, expresada en este caso en base 10, puede ser representada en base 2,

W = a n 2 n + a n -1 2 n -1 + a n - 2 2 n - 2 + ....... + a 3 2 3 + a 2 2 2 + a 1 21 + a 0 2 0 donde , a n , a n -1 , a n - 2 , .... , a 3 , a 2 , a 1 , a 0 pueden ser 0 o 1, elementos smbolos del sistema numrico de base 2, y n es un nmero natural.

aplicando la ecuacin 1. De esta manera,

Por ejemplo, si se trata de la cantidad decimal 17189,

La idea es simple; sin embargo, el problema es como deducir los dgitos 1 o 0, y su posicin relativa en la representacin binaria. Para ello recordamos el hecho I) enunciado anteriormente, el que dice que si desplazamos la cantidad un lugar a la derecha, equivale a dividirla por la base numrica. Si la base numrica es 2, entonces este desplazamiento a la derecha representar una divisin por dos. Esta divisin por 2 puede producir un resto 1 si el dividento es impar, o un resto 0 si la cantidad es par; note que estos restos 0 o 1 corresponden justamente a los elementos del sistema numrico binario. Lo expuesto se muestra en la ilustracin adjunta, usando el mismo nmero 17189 anterior. Notar que estos desplazamientos sucesivos botar siempre o un 0 o un 1, los que corresponden al resto de la divisin por 2. Por lo tanto, para transformar una cantidad decimal en binaria, bastar con dividir sucesivamente por dos, tomando nota en cada caso de los restos que se producen. Dicho de otra manera, el nmero binario est constitudo por los restos que produce la divisin 3

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

sucesiva de la cantidad decimal, por 2. De esta manera entonces, podemos deducir la cantidad binaria correspondiente con el nmero 17189, usado para ilustrar estas ideas.

Apreciamos que la primera divisin identifica a travs del resto 1, al bit menos significativo, el que tambin identifica a una cantidad IMPAR. Por lo tanto desechando ese bit (el bit botado de la traslacin a la derecha) queda la cantidad correspondiente al cuociente de la divisin por 2, el 8594 en este caso. Volvemos a dividir por dos, y se produce el resto 0, identificacin de cantidad PAR. Y as, seguimos hasta lograr un cuociente nulo, el que identifica que no ser posible seguir particionando la cantidad en potencias de dos. Entonces, finalmente conclumos lo expuesto anteriormente, y que repetimos a continuacin:

17189 = 100 0011 0010 0101B Lo anteriormente expuesto define tambin el mtodo para realizar una transformacin de binario a decimal. Basta con ello multiplicar cada bit por la potencia de 2 que corresponde a su posicin relativa en la expresin binaria, para luego sumar los componentes resultantes. De esta manera, por ejemplo, 100101B = 1*32 + 0*16 + 0*8 +1*4 + 0*2 +1*1 = 32 + 4 + 1 = 37

1.3.- El Sistema Hexadecimal, o Base numrica 16.


Las expresiones de grandes nmeros en sistema binario, resultan complicadas de manejar, dado la longitud de las cadenas de 0s y 1s resultantes. Por ejemplo, la cadena siguiente, 1001 0011 1110 0001 0000 1010 0111 0010B si la expresamos oralmente, al leer los ltimos bits ya no recordamos los primeros. Por ello se busca una forma de comprimir esta cadena, de manera que resulten menos smbolos. Para ello se usa 4

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

entonces un smbolo por cada cuarteto de bits, y dado que 4 bits dan lugar a 16 combinaciones, el sistema numrico tendr 16 smbolos. De all su nombre de sistema hexadecimal o sistema numrico de base 16, el que se ilustra en la tabla 1.2.

En este sistema se usan los mismos smbolos del sistema numrico decimal, es decir, el 0, 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 y 9. Luego, para representar los dgitos correspondientes al 10, 11, 12, 13, 14 y 15 (con lo que se completan 16 smbolos) se hace uso de las primeras letras del abecedario (A, B, C, D, E, F), no interesando si son maysculas o minsculas. De esta manera, 10 = AH = aH = ah (h=H, indica base hexadecimal), 11 = BH, 12 = CH, 13 = DH, 14 =EH, 15 = FH. Con el propsito de evitar confusiones con expresiones del tipo BACEH por ejemplo - la que pudiera significar una cantidad expresada en hexadecimal, o pudiera representar una palabra, se acostumbra a anteponer un 0 en una cantidad numrica hexadecimal que comienza con una letra. De esta manera, cuando expresamos 0BACEH, no hay dudas que nos estamos refiriendo a una cantidad numrica. Entonces, la cantidad binaria anterior, puede ser expresada en forma en su forma hexadecimal, totalmente equivalente,

1001 0011 1110 0001 0000 1010 0111 0010B = 93E10A72H


Notar que 1001B = 9, 0011B = 3, 1110B = 0EH, etc.. Como esta cantidad se inicia con un nmero (9), no hay dudas que representa una cantidad numrica, por lo que no existe necesidad de anteponer un 0; sin embargo, si deseara hacerlo, no provoca confusin de ningn tipo, ya que hemos dicho que en estas condiciones el 0 no aporta significado a la expresin numrica. De esta manera, la transformacin de una cantidad numrica decimal en hexadecimal, puede hacerse de dos maneras. La primera consistir en transformar la cantidad decimal en binaria, con el mtodo de la divisin por dos, para luego comprimir cada cuatro bits usando un slo smbolo hexadecimal, desde el lado izquierdo (menos significativos). Entonces, a modo de ejemplo, la cantidad decimal 96 = 110 0000B, ya que 96/2=48 (0), 48/2=24 (0), 24/2=12 (0), 12/2=6 (0), 6/2=3 (0), 3/2=1 (1), 1/2=0 (1). Y ahora agrupando en cuartetos desde la izquierda, tendremos que 96 = 0110 0000B = 60H. Otra forma que se puede elaborar y demostrar a partir de la ecuacin 1 de este captulo y de aspectos ya explicados, consiste en dividir sucesivamente la cantidad decimal por la base numrica (16), para ir tomando nota de los restos, los que podrn ser entre el 0 y el 15 - ambos inclusive - los 5

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

que sern expresados en hexadecimal. De esta manera, por ejemplo, la cantidad decimal 147, 157: 16 = 9, resto 13 = 0DH 9 : 16 = 0, resto 9

Por lo tanto, 157 = 9DH

Al dividir por 16 hay que realizar mucho menos divisiones. Y si recordamos la tabla anterior que relaciona cuartetos de bits con sus smbolos hexadecimales, podremos hacer una transformacin de decimal a binario, pasando por hexadecimal, mucho ms rdidamente. As, 157 = 9DH = 1001 1101B La transformacin de una cantidad hexadecimal en decimal, tambin pudiera hacerse de dos maneras. La primera es pasando por la transformacin binaria, para luego transformar el nmero binario en 2 1 0 2 1 0 0 B63H = 0BH 16 + 6 16 + 3 16 = 11 16 + 6 16 + 3 16 = decimal, a travs de 2816 + 96 + 3 = 2915 l a s ponderacio nes de las potencias de dos. Por ejemplo, si queremos transformar 0B63H, observamos (o recordamos) la tabla anterior, y deducimos que 0B63H = 1011 0110 0011B = 2048 + 512 + 256 + 64 + 32 + 2 + 1 = 2915. Otra forma consistir en desarrollar la expresin hexadecimal en la forma que nos da la ecuacin 1 de este captulo, es decir,

1.4.- Las cantidades CON SIGNO.


Hasta este momento hemos considerado cantidades SIN SIGNO, o cantidades en trminos absolutos. Son cantidades que pertenecen al conjunto de los nmeros - enteros por ahora - positivos. De esta manera, si tenemos 8 bits para representar los nmeros, entonces ser posible contar con 2 elevado a 8 = 256 valores posibles, es decir, desde el 0 hasta el 255 = 0FFH = 11111111B. Si contamos con 16 bits para representar los nmeros, entonces tendremos 2 elevado a 16 = 65.536 valores, es decir, desde el 0 hasta el 65.535 = 0FFFFH = 1111 1111 1111 1111B. Con 32 bits tendremos 2 elevado a 32 = 4.294.967.296 valores, es decir desde el 0 hasta el 6

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

4.294.967.295 = 0FFFF FFFFH = 1111 1111 1111 1111 1111 1111 1111 1111B. En la intimidad del computador, no existe posibilidad alguna de usar los signos "+" o "-" para indicar si una cantidad es positiva o negativa. De hecho, el computador slo trabaja con niveles lgicos "0" o 1", por lo que la expresin del signo slo ser posible haciendo uso de uno de estos smbolos. Por lo tanto, el signo ser asignado por medio de un bit.

Otro aspecto que debemos tener en cuenta es el hecho que con una cantidad limitada de bits podemos expresar una cantidad limitada de valores. En las cantidades de 8 bits SIN SIGNO es posible expresar desde el 0 hasta el 255, y nada ms. Por lo tanto, si deseamos usar los mismos 8 bits para expresar cantidades CON SIGNO, slo podemos hacer uso de ese mismo conjunto de combinaciones posibles, con lo que tendremos 127 valores positivos, 128 valores negativos, ms el 0. Apreciar que el total de valores es 256. No podemos contar con ms de eso. En breve mostraremos que en realidad son 128 valores positivos, ya el computador considera el 0 como un valor positivo; en un ambiente de bivalencia (0 / 1) no pueden existir los tres estados positivo negativo y cero, por lo que necesariamente debe asignarse a este ltimo elemento un signo, aunque el sentido de esto sea muy discutible. Lo mismo podemos apreciar para el caso de la expresin de cantidades numricas CON SIGNO mediante 16 bits. La cantidad de combinaciones posibles son 65.536. Por lo tanto, al asignar signo, tendremos 32.767 valores positivos, 32.768 valores negativos, ms el 0 (total 65.536). La manera de constituir el conjunto de valores binarios CON SIGNO sigue la misma lgica que la usada para constituir el conjunto de las cantidades sin signo. Para construir las combinaciones posibles, los bits menos significativos cambian 1 vez por valor ( 2 elevado a 0), los bits de la siguiente columna cada dos veces ( 2 elevado a 1 ), luego cada cuatro veces ( 2 elevado a 2 ), cada ocho... etc.. Se muestra esta lgica en la Tabla 1.3. En la tabla anterior apreciamos que en el caso de trabajar con 8 bits alcanzaremos desde -128 hasta +127 SIN REPETIR COMBINACION ALGUNA.. Apreciamos adems el hecho que el 7

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

BIT MAS SIGNIFICATIVO DE LAS CANTIDADES POSITIVAS ES SIEMPRE 0. En cambio el BIT MAS SIGNIFICATIVO DE LAS CANTIDADES NEGATIVAS ES SIEMPRE 1. En consecuencia, el bit ms significativo representa el signo, siendo 0 si la cantidad es + y 1 si la cantidad es -. De esta manera, a nivel de 8 bits, si representamos cantidades con signo, la cantidad se expresa con 7 bits y un bit identifica el signo. A nivel de 16 bits, tendremos 15 bits para representar la cantidad y un bit, siempre el ms significativo, para indicar el signo. Note que 27 = 128 (el cero se considera +) y 215 = 32.768. Se aprecia adems que el CERO es considerado como una cantidad positiva, ya que su bit ms significativo es siempre 0. Es posible deducir a travs de la tabla que si deseamos conocer el valor negativo de un nmero binario (o hexadecimal) slo debemos complementar ese valor y luego sumarle 1. Por el complemento de un dgito entendemos el valor que hay que sumarle a cada dgito para alcanzar el dgito que representa el valor del smbolo mximo de la base numrica 8o la base numrica menos 1). De esta manera, el complemento del 0 es el 1 ya que 0+1=1, y del 1 es el 0, en la base numrica 2. Por otra parte, el complemento del 8 es el 7 (8+7=15), del 2 es 0DH (2+0DH=0FH), del 0AH es el 5 (0AH+5=0FH), etc., en la base numrica hexadecimal. En la base numrica decimal, el complemento del 3 es el 6 (3+6=9), el complemento del 5 es el 4 (5+4=9), del 9 es el 0, etc..

Veamos los siguiente ejemplo: - 99 = - 63H = - 0110 0011B (note que 99 = 63H = 0110 0011B) - 0110 0011B = 1111 .... 1111 1001 1100B + 1 = 1111 .... 1111 1001 1101B = ....FFFFF...FFF9DH Notar que hemos complementado los bits (los ceros subentendidos a la izquierda se han transformado en 1s), y se le ha sumado una unidad. Note que el bit 7 (ms significativo a nivel de 8 bits) resulta 1. De la misma manera, si tenemos una cantidad con signo a nivel de 16 bits igual a: 8A52H = 1000 1010 0101 0010B (debemos entenderla como FFF...F8A52H), ser reconocida como cantidad NEGATIVA ya que su bit ms significativo es 1. Para conocer el valor absoluto que representa (o su imgen positiva) deberemos restarle una unidad para luego complementar. Entonces, _______ (8A52 -1)H = 75AEH (cada dgito complementado a 0FH) o trabajado en binario:

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

_____________________ (1000 1010 0101 0010 - 1)B = 0111 0101 1010 1110B (cada dgito complementado a 1) Entonces, a nivel de 16 bits, - 75AEH = 8A52H = - 30.126

En base a lo anteriormente dicho, nos queda an por discutir lo siguiente: Si tenemos un valor en binario (o Hex), necesitaremos conocer que representa (en decimal, por ejemplo). Esto puede resultar indefinido si no se especifica claramente si se trata de una cantidad CON SIGNO o una cantidad SIN SIGNO. Veamos por ejemplo, a nivel de 8 bits, la cantidad 0010 1110B = 2EH . Esta cantidad representa el 46 decimal y puede ser una cantidad CON SIGNO como una cantidad SIN SIGNO. Apreciar que su bit ms significativo es un 0, por lo que se trata de una cantidad positiva y menor de 127. No existe ambiguedad alguna si la cantidad es igual o menor a 127. En cambio, a nivel de 8 bits, la cantidad 1001 1000B = 98H es ambigua a menos que

0, 4140625=
-1

0, 25 +
-2

0,125+
-3 -4

0, 03125+
-5 -6

0, 0078125=

= ( 0 * 2 ) + ( 1* 2 ) + ( 1* 2 ) + ( 0 * 2 ) + ( 1* 2 ) + (0 * 2 ) + ( 1* 2-7 )
especifiquemos claramente si se trata de una cantidad CON o SIN Signo. Si la cantidad es SIN Signo, representa el nmero 152 (recuerde que podemos tener hasta el 255). En cambio si se especifica que la cantidad es Con Signo, reconoceremos una cantidad negativa ya que el bit ms significativo es 1 y se tratar del valor - 104 (resto 1 y complemento).

1.5.- La fraccin decimal.


Centramos ahora la discusin sobre la parte fraccionaria decimal de un valor, e ilustraremos con la fraccin decimal 0,4140625. Note que de acuerdo a lo planteado con relacin a la ecuacin 1, La fraccin decimal tambin puede descomponerse en sumando que son potencias de 2 con exponentes negativos. As entonces buscaremos como descomponer la fraccin decimal en sumandos 0,5 = 2elevado a -1, 0,25 = 2 elevado a -2 , 0,125 = 2 elevado a -3 , 0,0625 = 2 elevado a -4 , 0,03125 = 2 elevado a -5 , .... etc. etc.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

Notaremos que a medida que el exponente de 2 se hace ms bajo (exponente ms negativo) el aporte a la cantidad es cada vez menor, con lo que los dgitos binarios que se ubican ms a la derecha son cada vez menos significativos. La descomposicin se realiza multiplicando cada vez el producto por 2 , menos 1 (si el producto anterior es mayor que uno ), o el producto por 2 ( si el producto anterior es menor que 1) e identificando la parte entera del producto resultante. Si esta parte resultante es mayor que 1, el dgito binario correspondiente es 1. En cambio si es menor que 1, el dgito es 0. Este procedimiento resulta ms simple ilustrarlo a travs de un ejemplo que explicarlo o justificarlo en detalle. Sin embargo, la justificacin del procedimiento se encontrar trabajando los elementos de sistemas numricos expuestos en este captulo. Veamos con nuestro caso ilustrado (valor decimal 0, 4140625): 0, 4140625 * 2 0, 828125 * 2 0, 65625 * 2 0, 3125 *2 0, 625 *2 0, 25 *2 0, 5 *2 Entonces: 0, 4140625 = 0, 0110101B ( o tambin 0, 0110101000...00000B ) Entonces, una cantidad decimal como 435, 4140625 se puede representar en binario transformando la parte entera, 435 = 1 1011 0011B, y luego la parte decimal, segn se ha mostrado. Es conveniente declarar - a esta altura - que esta forma de representacin no es usual, pero tiene el mrito que facilitarnos la comprensin sobre el formato de PUNTO FLOTANTE. Entonces, 435, 4140625 = 0001 1011 0011 , 0110 1010 B Apreciamos que la precisin que consigamos slo depende de la cantidad de bits que se usen para expresar tanto la cantidad entera como la cantidad fraccionaria decimal. Si usamos por ejemplo 16 bits para la cantidad entera y deseamos adems representar cantidades CON SIGNO (bit ms significativo ser el signo) entonces tendremos valores entre 32.767 y - 32.768. Si adems usamos por ejemplo - 24 bits para representar la cantidad fraccionaria, tendremos la posibilidad de contar con una precisin a 2 elevado a -24 = 0,00000005960464477539. = 0, 828125 = 1, 65625 = 1, 3125 = 0, 625 = 1, 25 = 0, 5 = 1 ------> 0 ------> 1 ------> 1 ------> 0 ------> 1 ------> 0 ------> 1

10

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

1.6.- EL FORMATO REAL O FORMATO DE PUNTO (o coma) FLOTANTE.


El formato de punto (o coma) flotante lleva la expresin de cantidades numricas a la siguiente forma,

(ecuacin 1.2 )

W = K * 2y

donde "W" es la cantidad numrica decimal, "K" es la mantisa y el exponente es "y" de la base 2. La manera de presentar esta informacin en binario, se muestra en la figura 1.1, la que constituye la representacin de una forma de Punto Flotante o formato Real.

De esta representacin numrica existen varios subformatos para nmeros, a saber: Real Corto: 1 bit de signo, 8 bits para el exponente y 23 bits para la mantisa (32 bits)

Real Largo: 1 bit de signo, 12 bits para el exponente y 51 bits para la mantisa (64 bits) Real Temporal: 1 bit de signo, 16 bits para el exponente y 63 bits para la mantisa (80 bits) (El caso representado anteriormente) Para llevar la cantidad decimal a la forma expuesta y luego al formato en punto (o coma) flotante, se procede segn se indica a continuacin. Con el fin de ilustrar, se trabajar con la misma cantidad usada anteriormente. Recordemos que ya se justific que, 435, 4140625 = 0001 1011 0011, 0110 1010B En primer lugar se convierte el entero decimal a binario, por lo que 435 = 0001 1011 0011B 11

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

Luego se convierte la cantidad fraccionaria decimal a binario, con lo que 0, 4140625 = 0, 0110 1010B A continuacin se desplaza la coma binaria tantos lugares a la izquierda (exponente de 2 positivo) o a la derecha (exponente de 2 negativo) de forma de dejar la cantidad expresada a partir de un entero ( 1, ...). Segn nuestro ejemplo, 435, 4140625 = 0001 1011 0011, 0110 1010B = 1, 1011 0011 0110 1010B * 2 ** 8 En el formato de punto (o coma) flotante el exponente de la base de 2 se normaliza de forma de dejar implcito su signo. Si representamos el valor como un REAL CORTO ( 32 bits ) entonces se procede a sumar a exponente 7FH = 127 = 0111 1111B. En el presente caso 7FH+8 = 87H = 1000 0111B. El valor entero resultante (1) no se representa en el formato ya que es subentendido. Finalmente entonces, para 1 bit de signo, 8 bits para el exponente y 23 bits para la mantisa (32 bits),

SIGNO (1 bit) 0

EXPONENTE (8 bits) 1000 0111

MANTISA (23 bits) 1011 0011 0110 1010 0000 000

La cantidad 435, 4140625 expresada en binario, haciendo uso de la forma Punto (coma) Flotante y como Real Corto, queda igual a 0100 0011 1101 1001 1011 0101 0000 0000B (se agrupan en cuartetos para mayor claridad).

El siguiente ejemplo intenta clarificar ms la transformacin: El siguiente valor representa una cantidad numrica en la forma Real Corto. Se trata de identificar la cantidad decimal correspondiente. W = C19B0000H = 1100 0001 1001 1011 1000 0000 0000 0000B en forma Real Corto. Con el fin de identificar mejor los componentes de la forma (Signo, Exponente y Mantisa) se ordenar segn se expone (1bit, 8 bits y 23 bits): W = 1 1000 0011 0011 0110 0000 0000 0000 000B en forma Real Corto. Entonces, se deduce que la cantidad es negativa (1 como ms significativo), el exponente (y) de la base 2 es 131 = 83H, 131- 127 = 4 y que la mantisa (K) es 1, 0011 0110 0000 .....B (note que se ha adicionado el 1). 12

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

W = 1, 0011 0110 0000B * 2**4 = 10 011, 0110 0000B

El entero es 10 011B = 19, que, siendo negativo corresponde al entero -19. La fraccin decimal contiene componentes 0,25 + 0,125 = 0,375, o dicho de otra manera, la mantisa K es igual a 1 + 2**(-2) + 2**(-3). Entonces finalmente, W = - 19, 375

Alcance de los datos segn el tipo de datos: La Tabla 1.4 siguiente resume los datos tpicos existentes y sus alcances.

Es de notar que en funcin de los alcances detallados en la tabla para la forma Real, se deduce que existir siempre una imprecisin o falta de exactitud, ya que la forma no puede especificar valores muy pequeos y valores muy altos. La ilustracin siguiente explica lo expuesto.

13

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

Por ltimo cabe sealar en este tema, que estos formatos son empleados por las Unidades de Punto Flotante de los Procesadores modernos.

1.7.- La representacin en BCD (Binary Count to Decimal).


BCD es otra forma de representacin binaria. En este caso, cada cuarteto de bits representa un dgito decimal. As entonces, por ejemplo, el nmero decimal 1298 quedar representado 0001 0010 0011 0100BCD. Apreciar que 1 = 0001B, 2 = 0010B, 9 = 1001B y 8 = 1000B, y que cada cuarteto de bits representa en posicin y combinacin, al dgito decimal correspondiente. En BCD se excluye entonces los cuartetos o combinaciones 0AH=1010B=10, 0BH=1011B, 0CH=1100B, 0DH=1101B, 0EH=1110B y 0FH=1111B. La Tabla 1.6 adjunta muestra el desarrollo de los nmeros en BCD. Esta forma de representacin o codificacin facilita la representacin numrica de cantidades, a nivel de computadores. Las transformaciones de valores hacia BCD son relativamente simples, por lo que esta forma de codificacin constituye normalmente una alternativa til. Una ventaja adicional se constituye cuando se necesita codificar nmeros en ASCII; lo tpico es que la cantidad numrica deba ser transformada en BCD y luego en ASCII, sumado o haciendo un OR con 30H. (Nota: el cdigo ASCII del nmero 0 es 30H, del 1 es 31H, del 2 es 32H, y as, ... hasta el 9 cuyo cdigo ASCII es el 39H).

14

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

Para transformar una cantidad numrica desconocida a BCD, basta con dividir sucesivamente por 10, segn se explica con ms detalles a continuacin, y se toma nota de los restos producidos. Bsicamente, los restos corresponden a las unidades, las que se sitan entre 0 =0000B y 9=1001B. Sea el nmero 728 = 10 1101 1000B = 2D8H; entonces, 728 : 10 = 72 resto 8 72 : 10 = 7 resto 2 7 : 10 = 0 resto 7 y en los restos 7, 2 y 8 identificamos los dgitos correspondientes a esa cantidad. Por lo tanto,

728 = 10 1101 1000B = 2D8H = 0111 0010 1000BCD

Es de notar que usando 8 bits, es posible representar en BCD desde el 0 hasta el nmero 99 (0000 0000BCD .... 1001 1001BCD). En cambio, en binario - llamado en ocasiones tambin binario natural - es posible reoresentar desde el 0 hasta el 255 (00000000B ..... 1111 1111B). Para representar el 100 en BCD necesitamos un cuarteto por cada cifra decimal, entonces 12 bits, a saber 0001 0000 0000BCD. Con 16 bits, podemos representar en BCD desde el 0 = 0000 0000 0000 0000, hasta el 9999 = 1001 1001 1001 1001BCD. El valor mximo que es posible representar con cada cuarteto de bits, es el nmero 9. Por lo general, cuando se representa un dgito decimal usando 8 bits, ste se menciona como un DECIMAL DESEMPAQUETADO. Por ejemplo, por decimales desempaquetados, 0000 0110BCD = 6, 0000 0100BCD = 4, 0000 0111BCD = 7, ... etc.. Se aprecia que un Decimal Desempaquetado siempre tiene su cuarteto ms significativo de bits - aquellos que estn al lado ms a la izquierda - igual a 0. Sin embargo, en 8 bits es posible contener dos cifras decimales, una en el cuarteto menos significativo, y la otra en el cuarteto ms significativo. Cuando tenemos una situacin de este tipo, tal representacin se le conoce como DECIMAL EMPAQUETADO. Por ejemplo, son Decimales Empaquetados 33 = 0011 0011BCD, 67 = 0110 0111BCD, 81 = 1000 0001BCD. Un par de Decimales Desempaquetados pueden ser empaquetados en un slo dato de 8 bits. Para ello, aquel Decimal Desempaquetado que decidimos figure como cuarteto ms significativo, se trata de manera que su cuarteto menos significativo quede como ms significativo; con ello entonces tendremos 0000 como cuarteto menos significativo. Para conseguir esto, se puede realizar un desplazamiento o rotacin de bits - cuatro veces - hacia la izquierda o derecha, o bien, se puede proceder por medio de un SWAP o intercambio de cuartetos. Una vez realizado lo anterior, se 15

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

realizar una suma lgica (OR) con el otro decimal desempaquetado. A modo de ejemplo, sean los decimales desempaquetados siguientes: 3 = 0000 0011BCD, y 7 = 0000 0111BCD. Entonces, 0000 0011BCD=03, y se intercambian los cuartetos y quedar 0011 0000BCD=30, para luego hacer una suma lgica con 0000 0111BCD=07, resultando 0011 0111BCD = 37, que es un Decimal Empaquetado. Tambin es posible plantear un proceso para desempaquetar un Decimal Empaquetado. Para ello se almacenar temporalmente. Luego se realizar una operacin de tipo AND con 0000 1111B, con lo que hemos determinado un Decimal Desempaquetado. Luego recuperamos desde el almacn temporal el Decimal Empaquetado, intercambiamos sus cuartetos - operacin llamada SWAP de cuartetos, o tambin puede ser hecho por rotacin o desplazamiento de bits - para conseguir el nuevo Decimal Desempaquetado repitiendo la operacin AND con 00001111B. Es de notar que esta operacin NAND con la mscara 0000 1111B = 0FH conserva el cuarteto menos significativo anulando el cuarteto ms significativo. A modo de ejemplo, sea el Decimal Empaquetado 82 = 1000 0010BCD.

Entonces, (1000 0010BCD=82) AND ( 0000 1111B=0FH) = (0000 0010BCD = 02) 1000 0010BCD=82, se intercambian cuartetos y queda 0010 1000BCD = 28, para luego hacer (0010 1000BCD=28) AND (0000 1111B=0FH) = (0000 1000BCD = 08). Las operaciones AND y OR mencionadas corresponden a operaciones que se realizan entre los bits de posiciones correspondientes. El proceso que se realiza mediante el AND se denomina enmascarar con 0FH, y el 0FH es designado como la mscara; corresponde a un dato que permite ver o conservar algunos bits - aquellos a los que se le asigna 1 en la posicin deseada - y no ver o anular otros, los que corresponden a aquellos que se le asigna 0 en la posicin deseada.

16

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica

Sede Talcahuano SBM/1999

1.8.- FORMATOS TIPICOS DE DATOS EN BINARIO.


Se ilustra a continuacin algunas formas usuales empleadas en mquinas computacionales. a) Un Nibble o cuarteto = 4 bits:

b) Un Byte = 8 bits:

c) Un Word = 2 Bytes = 16 bits:

d) Un DWord (doble Word) = 2 Words = 4 Bytes = 32 bits

e) Un Qword (cudruple Word) = 4 Words = 8 Bytes = 64 bits

17

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica COMPUTADORES

Sede Talcahuano SBM/2000

f) Decimal Desempaquetado:

g) Decimal Empaquetado:

h) Un Real Temporal de 80 bits:

_____________________________________________________________________________________

SBM / 29 de diciembre 1999 / sistnum.wpd, sistnum.zip - 26

18

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica COMPUTADORES

Sede Talcahuano SBM/2000

Ejercicios sobre Sistemas Numricos.


Nota: Si no se expresa la base numrica, se entiende la base 10.

1.1.-

Transformar las siguientes cantidades a su expresin en base hexadecimal y binaria (evitando el uso de una calculadora electrnica). A) 8192 E) 16383 B) 256 F) 65.535 C) 1.048.576 G) 1023 D) 4095 H) 511

1.2.-

Transformar los siguientes valores a su expresin en base decimal. A) 2222H E) 1EE0H B) 0110 0101 B C) 0A00H G) 1000H D)1111 0000 B H) 0110 0100 B

F) 0001 0101 1100 1010 B

1.3.-

Los valores siguientes corresponden a cantidades expresadas en BCD. Expresar esos valores Decimal, Hexadecimal y Binario (natural) en, ii) 1001 1001 BCD iii) 0001 0010 0011 0100 BCD

i) 0111 1001 BCD

1.4.-

Indicar a que valores decimales corresponden las siguientes expresiones considerando que, A) El valor pertenece al conjunto de los nmeros de 8 bits SIN SIGNO, y B) El valor pertenece al conjunto de los nmeros de 8 bits CON SIGNO. I) 0111 1111 B II) 1000 000 B III) 1010 0000 B V) 9AH VI) 3EH IV) 0100 1111 B VIII) 08H

VII) 0C5H

1.5.-

Explicar el motivo por el cual la siguiente expresin numrica que se dice ser en BCD, es errnea: 0110 1001 0001 1011 0001 0011 BCD

19

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica COMPUTADORES

Sede Talcahuano SBM/2000

1.6.- Considerar los siguientes elementos matemticos (ecuaciones 1 y 2):

Sn = 2 -1 + 22 + 23 + 2 4 + ....+ 2n =

2
n= 1

=1

Ec.1

Para demostrar esta ecuacin 1 basta dividir Sn por 2, para luego restar de la ecuacin original. Adems, a partir de esta ecuacin 1 demostrada, se puede establecer que, para n 2 2 + 23 + 2 4 + 2-5 + .... + 2n = 1 2-1 = 2 1 2 3 + 24 + 2 -5 + .... + 2n = 1 2-1 2 2 = 22 2 4 + 2-5 + .... + 2n = 1 2-1 22 23 = 23 etc.. Entonces, a partir de lo anterior, es posible establecer para un valor entero j que, 1- 2 j = 2-1 + 2 2 + 23 + .... +2-j para j 1, j N Ec. 2

Esta ecuacin 2 se puede demostrar aplicando induccin matemtica (para k=1, y para k+1). Usando la ecuacin 2 se deduce que si es conocida la cantidad de bits de que se dispone para expresar una fraccin decimal, se puede determinar muy simplemente el valor mximo de fraccin decimal que se puede expresar con esa cantidad de bits.
Entonces, 1.6.1.1.6.2.1.6.3.1.6.4.Demostrar la ecuacin 1. Determinar la cantidad fraccionaria mxima que es posible representar con 8 bits. Usando 8 bits, mostrar el cumplimiento de la ecuacin 2. Argumentar, para el caso que se quisiera representar el valor 1, mediante la expresin de una fraccin decimal, cuntos bits seran necesarios ? 1.6.5.- Determinar la cantidad fraccionaria mxima que es posible representar con a) 16 bits, y b) 20 bits. 1.7.Una cantidad numrica usa 32 bits en la memoria de un computador. Los 16 bits ms significativos expresan (sin signo) los enteros, y los 16 bits menos significativos expresan la fraccin decimal de la cantidad. La cantidad numrica es: 1101 0011 1110 0001 0101 0110 1111 0000 B Determinar el valor numrico decimal que representa.

20

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica COMPUTADORES 1.8.-

Sede Talcahuano SBM/2000

Se cuenta con 16 bits para expresar una cantidad numrica, y se usa 8 bits para expresar la parte entera y 8 bits para expresar la parte decimal.

A) B)

Indicar el valor mximo sin signo, que se puede expresar. Anotar el word (16 bits) en binario y hexadecimal, que expresa el dato decimal 193,089050293 usando el octeto ms significativo para representar la parte entera.

1.9.-

a) Expresar el nmero decimal 435 en base numrica 8. b) Transformar a su expresin en decimal el valor 444 Octal (base 8). c) El valor 796 Octal no puede ser una expresin numrica en base 8. Explicar el motivo.

2.0.-

a) Transformar el valor decimal (- 2471,6640625) a su expresin en formato de punto flotante, Real Corto. b) La expresin numrica 00C34E2280H expresa una cantidad en el formato de punto flotante, Real Corto. Determinar ese valor en su forma decimal.

2.1.-

Contamos con una herramienta (ver Nota al final de este listado) que nos permite realizar transformaciones de valores decimales a su formato punto flotante. Al usar esta herramienta conseguimos las transformaciones para los valores indicados. Compruebe que son correctos. Formato Punto Flotante Real corto, HEX 3F7E4C8B BF45D3E6 3EC425FE BF45D3E6 Formato punto flotante Real corto, BIN 0011 1111 0111 1110 0100 1100 1000 1000 1011 1111 0100 0101 1101 0011 1110 0110 0011 1110 1100 0100 0010 0101 1111 1110 1011 1111 0100 0101 1101 0011 1110 0110

Real decimal 0.99336 -1.30708 0.38308 -0.77270

2.2.-

A) Compruebe que la transformacin de la fraccin decimal 0.5678 a binario produce 0,1001 0001 0101 1011 0111 0000B (24 bits) B) Luego demostrar que el valor decimal - 1234, 5678 en su forma de punto flotante, real con precisin simple (32 bits) produce, C4 9A 52 2BH = 1100 0100 1001 1010 0101 0010 0010 1011B C) De acuerdo al valor punto flotante comprobado anteriormente, indique en binario el valor del Signo, del Exponente y de la Mantisa correspondiente.

21

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica COMPUTADORES 2.3.-

Sede Talcahuano SBM/2000

Transformar el valor decimal 12345 a hexadecimal y binario. Luego, transformar el valor 12345,00 a su formato punto flotante, real corto.

2.4.-

Al contar con expresiones numricas expresadas en la forma de punto flotante, es posible generar una aritmtica y matemticas para ser usada con la forma. Esta aritmtica estar compuesta por un conjunto de reglas aplicables a las distintas operaciones. Por ejemplo, para la multiplicacin de dos valores en punto flotante se establece que para determinar el producto, debe multiplicarse las mantisas y debe sumarse los exponentes de los valores. Entonces, a) Justificar la regla enunciada anteriormente. b) Determinar la regla para realizar el cuociente entre dos cantidades numricas expresadas en la forma de punto flotante.

________________________________________________________________________ Nota:
Posiblemente a esta atura de sus conocimientos la siguiente nota no le dir mucho. Sin embargo, en algn momento posterior le encontrar sentido al siguiente alcance: El algoritmo para transformar un valor numrico a su forma de punto flotante, forma parte de prcticamente todos los programas Ensambladores para Procesadores de la familia INTEL 80x86 (tambin de otros similares de otras tecnologas). De esta manera, al especificarse dentro de un programa fuente la siguiente directiva.

DATO1

dd

-17809.27234

;dd = define doble word, precisin simple

el Ensamblador determinar el valor correspondiente en formato real corto (32 bits, un bit de signo, 8 bits de exponente y 23 bits para la mantisa. Si se especifica en cambio las directivas que siguen,

DATO2 DATO3

dq dt

987210.56098 123456789.0987654321

;doble precisin, 64 bits ;precisin completa, 80 bits

se obtienen las expresiones en formato de punto flotante, con 64 bits (dq = define quad word) y con 80 bits (dt = define ten - 10 - bytes). Una vez ensamblado el programa, ser posible conocer las transformaciones si procede a leer el correspondiente archivo listado (.LST). Debe considerar que el byte ms bajo resulta en la posicin de memoria ms baja. Tambin podr cargar el programa ensamblado a la memoria del computador mediante una herramienta como el DEBUG o el SYMDEB, para luego conocer la transformacin a punto flotante mediante el volcado de memoria (-d).

________________________________________________________________________

22

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA Area Electrnica COMPUTADORES

Sede Talcahuano SBM/2000

Respuestas:
A) 8192 = 2000H = 0010 0000 0000 0000B B) 256 = 100H = 0001 0000 0000B C) 1048576 = 100000H = 0001 0000 0000 0000 0000 0000B B) 4095 = 0FFFH = 0000 1111 1111 1111B C) 16383 = 3FFFH = 0011 1111 1111 1111B D) 65535 = 0FFFFH = 1111 1111 1111 1111B E) 1023 = 3FFH = 0011 1111 1111B F) 511 = 1FFH = 0001 1111 1111B A) 8738 B) 101 C) 2560 D) 240 E) 7904 F) 5578 1.2.G) 4096 H) 100 1.3.i) 79=4FH=0100 1111B ii) 99=63H=0110 0011B ii) 1234=04D2H=010011010010B 1.4.I) 7FH = 01111111B = 127 (sin signo) = +127 (con signo) II) 80H = 10000000B = 128 (sin signo) = -128 (con signo) III) A0H = 10100000B = 160 (sin signo) = -96 (con signo) IV) 4FH = 01001111B = 79 (sin signo) = +79 (con signo) V) 9AH = 10011010B = 154 (sin signo) = -102 (con signo) VI) 3EH = 00111110B = 62 (sin signo) = +62 (con signo) VII) C5H = 11000101B = 197 (sin signo) = -59 (con signo) VIII) 08H = 00001000B = 8 (sin signo) = +8 (con signo) 1.5.El cuarto cuarteto de bits (1011B) es mayor que 9, por lo que no puede representar un dgito BCD. 1.6.1.6.1) El mtodo se sugiere dentro del mismo problema. 1.6.2) 0,99609375 1.6.3) 1.6.4) Una cantidad tendiente a infinitos bits. 1.6.5) a) 0,999984741 b) 0,999999046 54241,339599609375 1.7.a) 255, 99609375 b) Entero = 0C1H = 1100 0001B, 1.8.Fraccin = 0001 0110 1100 1100B = 16CCH a) 435 = 663o b) 444o = 292 c) 9 no pertenece al conjunto de 1.9.los smbolos de la base octal. a) 0 C5 1A 7A A0H b) -206,134765625 2.0.Sin comentarios. 2.1.- y 2.2.12345 = 3039H =0011 0000 0011 1001B, 2.3.12345,00 = 4640E400H = 0100 0110 0100 0000 1110 0100 0000 0000B 2.4.a) Considerar la expresin k por 2 elevado a y para cada valor y deducir. b) Cuociente de mantisas y diferencia de exponentes. 1.1.-

________________________________________________________________________

sbm/julio 2000, ej_snum.wpd,

julio 2002, sistnum.pdf - 29 y CD

23

S-ar putea să vă placă și