Documente Academic
Documente Profesional
Documente Cultură
REPRESENTACIN Y
OPERACIONES ARITMTICAS CON
NMEROS EN PUNTO FIJO
AUTORES:
ING. GUILLERMO A. FERNNDEZ
DR. ING. FERNANDO BOTTERN
Ejemplo 1:Ejemplosdenmerosdecimalesconpuntofijo.
1234 -12345
12 ,34 ; - 123, 45
100 100
Como podemos observar, el factor de escala es 100, por lo tanto el nmero obtenido en cada caso
siempre posee dos cifras decimales. Es decir, en los dos casos la coma o punto decimal se encuentra
fijo. Si en ambos casos del ejemplo anterior, el factor de escala fuera 1, el resultado sera un
nmero con el punto fijo en el extremo derecho (parte decimal nula), es decir un nmero entero.
Los nmeros enteros, pueden representarse de diferentes formas, tales como: Signo-Magnitud,
Complemento a 1 y Complemento a 2, siendo esta ltima representacin de especial importancia, ya
que es la utilizada en las operaciones aritmticas efectuadas por los dispositivos mencionados en un
principio.
Los nmeros naturales son aquellos que permiten contar elementos, es decir son 0, 1, 2, 3,..
Como podemos apreciar, en el conjunto de nmeros naturales no hay nmeros con signo. En el
sistema binario, este tipo de nmeros son representados por combinaciones de ceros y unos.
Estas combinaciones son expresadas a travs de palabras que poseen un nmero definido dgitos o
bits. Los nmeros naturales estn representados en binario puro, donde cada bit posee un peso o
ponderacin, como se muestra a continuacin:
El peso de cada bit es creciente de derecha a izquierda (como en el sistema decimal, de unidad hacia
decena, centena, etc.). Si el nmero binario representado por una palabra de N bits puede
convertirse al sistema decimal mediante la siguiente general:
Donde bN1 es el bit ms significativo (MSB) o de ms peso yb0 el menos significativo (LSB) o de
menos peso. Una palabra con N bits, permite representar 2N nmeros binarios naturales diferentes,
con un rango definido por:
0 x 2N 1 0 ; 2 N 1 [2]
Ejemplo 2: Convertirlossiguientesnmerosbinariosnaturalesalsistemadecimal,encadacaso
determinarelrangorepresentableconlacantidaddebitsutilizado.A2=110101;B2=11101101.
Utilizandolaexpresin[1],cadanmeropuedeconvertirsealsistemadecimal:
A2 110101 A10 1 2 5 1 2 4 0 23 1 2 2 0 2 1 1 2 0
A10 32 16 4 1 A10 53
B2 11101101 B10 1 2 7 1 2 6 1 2 5 0 2 4 1 2 3 1 2 2 0 2 1 1 20
B10 128 64 32 8 4 1 B10 237
Atravsdelaexpresin[2],puedeobtenerseelrangoderepresentacinencadacaso:
ParaA2 110101 N 6 0 ; 26 1 0 ; 63
ParaB2 11101101 N 8 0 ; 28 1 0 ; 255
Ejemplo 3: Convertirlossiguientesnmerosnaturalesalsistemabinario,utilizandoelmtodode
ladivisinsucesivapor2.A10=22;B10=13.
22 13
11; resto 0 6; resto1
2 2
11 6
5; resto1 3; resto 0
2 2
5 3
2 ; resto1 1 ; resto1
2 2
2
1 ; resto 0
2
Paraobtenerelequivalentebinariodecadanmero,debetomarsecomoMSBelresultadode
laltimadivisinylosrestosdelasdivisionesanteriores.Porlotantoqueda:
A10 22 A2 1 0110 ; B10 13 B2 1101
Operaciones Aritmticas
Para efectuar operaciones aritmticas, hay que tener en cuenta que las mismas deben arrojar
resultados que se encuentren dentro del conjunto de nmeros naturales. Por ejemplo, no podr
efectuarse una resta donde el minuendo es menor al sustraendo (ya que dara un nmero negativo,
no representable en los nmeros naturales), tampoco se podra realizar una divisin cuyo resultado
arroje decimales, el resultado slo se puede expresar mediante nmeros naturales.
Los dispositivos digitales capaces de realizar operaciones aritmticas, efectan las mismas con
nmeros representados por palabras, las cuales poseen una cantidad acotada de bits. Por lo tanto, los
nmeros utilizados en las operaciones debern arrojar resultados representables por estas palabras.
Es decir, si el dispositivo opera con palabras de 4 bits, slo podr representar correctamente
resultados que van de 0 a 15 (esto es relativo, ya que en algunos casos pueden utilizarse dos o mas
palabras para representar los resultados). A continuacin veremos las operaciones elementales con
nmeros naturales, a partir de las cuales obtendremos conceptos importantes que son aplicables a
otros conjuntos de nmeros.
Suma: La suma de dos nmeros binarios naturales se efecta bit a bit, desde el bit menos
significativo hacia el ms significativo, generndose el bit de acarreo siempre que es necesario.
Para efectuar la suma debe tenerse en cuenta que: 0+0=0 ; 0+1=1 ; 1+0=1 ; 1+1=10 (2 en binario) y
1+1+1=11 (3 en binario).
Ejemplo 4: SumarlosnmerosnaturalesA+B,enlossiguientescasos:A)A2=0011yB2=1100;B)
A2=1101yB2=1110.
En la primera suma, cuando se efecta 1+1 (en los bits menos significativos), el resultado es 10. Por
lo tanto se anota 0 en el resultado y el 1 es acarreado a la siguiente columna de bits. En la
segunda suma puede apreciarse que el resultado no puede representarse con una palabra de 4 bits, lo
cual queda indicado por el bit de acarreo (CARRY BIT). Este bit est presente en dispositivos
digitales que realizan operaciones aritmticas, sirve para indicar que el resultado ha sobrepasado el
rango de representacin (en ste caso de 0 a 15).
Resta: Esta operacin se efecta restando bit a bit los nmeros comenzando desde el bit menos
significativo hacia el ms significativo. Para efectuar la resta debe tenerse en cuenta que: 00=0 ; 1
0=1 ; 11=0 y 01=1 ya que debe pedirse prestado 1 al siguiente bit de mas peso para efectuar
101=1. Para comprende esto, veamos el siguiente ejemplo.
Ejemplo 5: RealizarlarestadenmerosnaturalesAB,siendoA2=11000yB2=00011.
Como puede verse en el ejemplo, cuando no puede efectuarse la resta se pide prestado al bit ms
significativo siguiente. Debe recordarse que la resta de nmeros naturales, puede realizarse siempre
que el minuendo es mayor o igual al sustraendo.
Ejemplo 6: Realizarlassiguientesmultiplicacionesentrenmerosnaturales:
A)A2=0011B2=0101;B)A2=1110B2=0011;C)A2=0011B2=1000.
Divisin: Esta operacin puede realizarse restando sucesivamente el divisor del dividendo. Las
restas son realizadas hasta obtener 0 o no poder efectuar ms la operacin. Por cada resta
realizada se incrementa en uno el cociente. En el siguiente ejemplo es indicado el mtodo. Debe
recordarse que en el conjunto de nmeros naturales no podrn resolverse de forma exacta aquellas
divisiones donde el dividendo no es mltiplo del divisor.
Ejemplo 7: Realizarlassiguientesdivisionesentrenmerosnaturales:
A)A2=1001B2=0010;B)A2=11000B2=00100.
Como puede apreciarse en el ejemplo anterior, para el primer caso no puede obtenerse el resultado
exacto ya que el dividendo no es mltiplo del divisor. En el otro caso puede observarse que al
efectuar la divisin por la unidad seguida de ceros, el resultado corresponde al dividendo
desplazado hacia la derecha tantos bits como ceros posee el divisor. Ms adelante se estudiar mejor
el desplazamiento o corrimiento de un nmero.
El conjunto de los nmeros enteros est conformado por los nmeros naturales y sus opuestos
(incluyendo el 0), es decir son nmeros con signo (;-2;-1;0;+1;+2;). Para representarlos en el
sistema binario, el bit mas significativos de la palabra es utilizado como bit de signo. De esta forma
la representacin de los nmeros enteros en el sistema binario, mediante palabras de N bits, queda:
ParaA2:10111=7 ParaB2:01100=+12
Ejemplo 9: Realizarelcomplementoa2deA2=10110yB2=01100.
A2 10110 B2 01100
1 1 1
01001 Complem. a 1 10011 Complem. a 1
+ +
1 1
01010 Complem. a 2 10100 Complem. a 2
El complemento a 2, adems de servir para la expresar nmeros con signo, permite efectuar la resta
de dos nmeros como si fuera una suma. En los dispositivos digitales, esto permite aprovechar para
realizar restas, los mismos circuitos que son utilizados para efectuar sumas. Por tal motivo, la
representacin en complemento a 2 es la utilizada en las operaciones aritmticas de dispositivos
digitales tales como: microprocesadores, microcontroladores, etc. Luego se explicarn las
operaciones aritmticas utilizando nmeros representados de sta forma.
Donde los coeficientes bi (con i=0;1;2; ;N1) corresponden a los bits del nmero binario,
siendo bN1 el bit mas significativo (MSB) yb0 el menos significativo (LSB).
Ejemplo 10: Determinar el equivalente decimal de los siguientes nmeros binarios enteros,
representadosporunapalabrade8bits:A2=10100101yB2=01101101.
Como los nmeros poseen ocho bits (N=8), la expresin general [3] queda de la siguiente
forma:
x10 b7 27 b6 26 ..... b1 21 b0
A2 10100101 A10 1 27 0 26 1 25 0 24 0 23 1 22 0 21 1
A10 128 32 4 1 A10 91
B2 01101101 B10 0 27 1 26 1 25 0 24 1 23 1 22 0 21 1
B10 64 32 8 4 1 B10 109
Mediante una palabra de N bits podrn representarse 2N nmeros binarios enteros que estn en un
rango representado por:
2 N 1 x 2 N 1 1 2 N 1 ; 2 N 1 1 [4]
A) Los nmeros enteros, son nmeros con signo, por lo tanto son representados en
complementoa2.Entonces,apartirdelaexpresin[4]puedeobtenerseelrango.
B) Los nmeros naturales no poseen nmeros negativos, es decir son todos positivos, por lo
tantoelrangoser:
0 ; 2 N 1 0 ; 216 1 0 ; 65535
Antes de tratar las operaciones aritmticas veamos en el siguiente ejemplo una particularidad del bit
de signo en la representacin en complemento a 2.
En el ejemplo puede apreciarse que en ambos casos el bit de signo es repetido hasta completar los 8
bits, a esto se denomina extensin del bit de signo. Todo nmero debe ser representado de esta
forma para poder realizar correctamente las operaciones aritmticas. Es decir, los nmeros
expresados con N bits, deben poseer el bit de signo extendido para poder completar los N bits (se
los debe completar con ceros si es positivo, o con unos si es negativo).
A continuacin veremos las operaciones aritmticas elementales, en las mismas son considerados
nmeros enteros representados por palabras de N bits, por lo cual los resultados debern
permanecer dentro del rango establecido por la expresin [4].
Suma y Resta: La suma de dos nmeros binarios enteros se efecta de igual forma que en el caso de
los nmeros binarios naturales (bit a bit). La resta se efecta sumando al minuendo el complemento
a 2 de sustraendo (es decir el opuesto del sustraendo). Tanto como para la suma y la resta, los
nmeros deben sumarse incluyendo el bit de signo. En el siguiente ejemplo es explicado el
procedimiento para ambas operaciones.
Ejemplo 13: Suponiendo que un dispositivo digital opera con palabras de 5 bits, realizar las
siguientesoperacionesconA10=10,B10=3,C10=12:A)A+B;B)AB;C)BC;D)AC;E)A+C.
Acarreo 10
10
(Desbordamiento)
A partir del ejemplo anterior y considerando que el resultado debe ser representado en N bits,
podemos concluir:
- Si se suman dos nmeros de igual signo, puede producirse un acarreo que representa un resultado
fuera de rango (como en AC). Si no se produce el acarreo mencionado, la suma puede arrojar un
resultado con un signo que no corresponde (como en A+C). En ambos casos estamos ante un
resultado errneo.
- Si se suman dos nmeros con distintos signos, puede producirse un acarreo, el cual se descarta
(como en AB) obtenindose as un resultado correcto. Esto es debido a que la operacin en
realidad es una resta y nunca podra dar fuera del rango de representacin con los N bits.
Segnlaexpresin[4],paraefectuarestasoperacionesessuficientelautilizacindenmeros
conN=5bits.Porlotanto:
11101 (3) 11101 (3)
(5)
00101 11100 (4)
+ 11101 + 00000
00000 00000
+ 011101 + 000000
11101 11101
10010001 (15) 1110100
+ 11101
101011100
+ 11101
1100101100 (12)
Segn la expresin [4], para efectuar estas operaciones deben utilizarse nmeros con N=5
bits.Pararealizarladivisin,losnmerosnegativosdebenexpresarsecomopositivos.Porlo
tanto:
Aplicandolaregladelossignosparaladivisin,elresultadoesnegativo.Porlotantodebe
expresarseencomplementoa2:11101
Los nmeros fraccionarios expresados de forma decimal (de ahora en ms nmeros fraccionarios,
para no confundir decimal con sistema decimal), poseen una parte entera y una parte decimal,
ambas separadas por la coma (o el punto, en ingls). Los nmeros fraccionarios, en el sistema
binario pueden representarse mediante una palabra de N bits, de los cuales K bits son utilizados
para la parte decimal. De esta forma el nmero binario fraccionario quedar de la siguiente forma:
Para obtener el equivalente decimal del nmero binario fraccionario, se recurre a la siguiente
expresin general:
x10 b N 1 2
N 1
b N 2 2
N 2
.... b1 21 b0
[5]
b1 21 b 2 2 2 .... b K 2 K
En la expresin anterior, los coeficientes bi (con (N1)K iK ) corresponden a los bits del
nmero binario fraccionario.
Debido a que un nmero entero podra considerarse como un nmero fraccionario con el punto fijo
en su extremo derecho, la expresin [5] se extiende tambin a los mismos, considerando los
coeficientes b-i=0 y K=0 (parte decimal nula).
Ejemplo 16: Determinar el equivalente decimal para los siguientes nmeros binarios
fraccionarios:A2=011011,11yB2=110,10111.
ParaelnmeroA,queespositivoyaquesuMSB=0,tenemosN=8yK=2,porlotantoa
partirdelaexpresingeneral[5]quedar:
x10 b5 2 b4 2 b3 2 b2 2 b1 2 1 b0 b1 2 1 b 2 2 2
5 4 3 2
A2 011011,11 A10 0 2 5 1 24 1 2 3 0 2 2 1 2 1 1 1 2 1 1 2 2
A10 16 8 2 1 1 2 1 4 A10 27 ,75
ParaelnmeroB,queesnegativo(elMSB=1),tenemosN=8yK=5,porlotantoapartir
delaexpresingeneral[5]quedar:
x10 b2 2 b1 2 b0 b1 2 b 2 2 2 b 3 2 3 b 4 2 4 b 5 2 5
2 1 1
B2 110,10111 B10 1 2 2 1 2 1 0 1 2 1 0 2 2 1 2 3 1 2 4 1 2 5
B10 4 2 1 2 1 8 1 16 1 32 B10 1, 28125
- Los nmeros fraccionarios aparecen en saltos determinados por 2K. Estos saltos
establecen la resolucin de la representacin, es decir el valor ms pequeo capaz de
expresarse con la cantidad de bits utilizados para la parte decimal del nmero.
Re solucin 2 K [6]
- A mayor cantidad de bits para la parte decimal, los saltos son mas chicos, pudindose as
representar nmeros mas pequeos. Esto quiere decir que habr mejor resolucin en la
representacin del nmero fraccionario (hay una mejor aproximacin a los nmeros reales).
- Los nmeros fraccionarios obtenidos en cada columna pueden considerarse que provienen
de realizar el cociente entre un nmero entero y 2K. O el producto entre el nmero entero y
2K. A partir de lo mencionado y considerando la expresin [4], el rango para un nmero
fraccionario de N bits, con K bits para la parte decimal, ser:
2 N 1 .2 K x 2 N 1 1 . 2 K 2 N 1 .2 K ; 2 N 1 1 .2 K
[7]
2 N 1 K ; 2 N 1 K 2 K
- Para una palabra con una cantidad definida de bits, la mejora de la resolucin va en
detrimento del rango, y viceversa.
A) ComoK=4,atravsdelaexpresin[6]puedeobtenerseelnmeromaspequeoquepodr
representarse:
1 1
Re solucin 2 K 4 0 ,0625
2 16
B) SiendoN=8yK=4,apartirdelaexpresin[7] elrangoser:
2 .2 ; 2 1 .2 2 .2 4 ; 28 1 1 .2 4 8 ; 7 ,9375
N 1 K N 1 K 8 1
C) ComoN=8,podrnrepresentarse28=256nmerosdiferentes.
Ya hemos dicho que los dispositivos digitales como ser: microprocesadores, DSPs, etc., para sus
operaciones aritmticas utilizan palabras con una cantidad de bits acotada. Esto quiere decir que si
el dispositivo opera con palabras de N bits, los nmeros slo podrn representarse a travs de N bits
en un rango definido por esta cantidad.
El Formato Q, o tambin denominado Formato IQ, consiste en tomar a las palabras de N bits y
ubicar un punto decimal ficticio con el fin de representar nmeros que posean una parte entera y
parte decimal, es decir nmeros fraccionarios. Para denotar a los nmeros en este formato, se
recurre a lo siguiente:
Un nmero en formato QM.K, est representado por una palabra de N bits (N=M+K), donde M bits
son utilizados para la parte entera y K bits para la parte decimal. En esta representacin, al igual que
lo explicado en prrafos anteriores en los nmeros fraccionarios, la parte entera est representada en
complemento a 2, siendo el MSB utilizado para el signo del nmero (positivo S=0, negativo S=1).
Una variante a la denotacin indicada anteriormente es QK, pero en esta forma abreviada debe
aclararse de antemano con que longitud de palabra se est trabajando.
A) EnelformatoQ2.6,laparteenteraestarrepresentadaporM=2bitsylapartedecimalpor
K=6bits.Laresolucinyelrangodelarepresentacinenesteformatoseobtienenatravs
delasexpresiones[6]y[7]respectivamente.
Re solucin 2 K 1 / 26 0 , 015625
Rango 28 1 .2 6 ; 281 1 .26 2 ; 1,984375
B) EnelformatoQ3.5tenemosM=3bitsyK=5bits.Laresolucinyelrangosern:
Re solucin 2 K 1 / 25 0,03125
Rango 281 .25 ; 28 1 1 .2 5 4 ; 3,96875
C) EldispositivodigitaloperaconpalabrasdeN=8bits,porlotantoenelformatoQ7tenemos
M=1bityK=7bits.Laresolucinyelrangosern:
Re solucin 2 K 1 / 27 0, 0078125
Rango 28 1 .2 7 ; 281 1 .2 7 1 ; 0,9921875
En ejemplos anteriores, hemos visto como convertir un nmero binario fraccionario al sistema
decimal mediante la utilizacin de la expresin general [5], a continuacin veremos el paso inverso,
es decir como convertir un nmero fraccionario del sistema decimal, a su equivalente binario. Para
esto haremos uso de nmeros representados en formato Q, ya que en la prctica siempre ser
necesario trabajar con nmeros que estn representados por una cantidad finita de bits.
Antes de explicar el mtodo para efectuar la conversin mencionada, veamos el siguiente ejemplo
para apreciar una particularidad.
Ejemplo 19: Sea el nmero X2=111.00111, para el mismo: A) Convertirlo en un nmero entero.
B) Hallar la relacin que hay entre los equivalentes del sistema decimal, para X2 como
fraccionarioycomoentero.
X '10 2 K . X 10 [8]
El ejemplo anterior nos permitir mostrar el mtodo para convertir un nmero fraccionario del
sistema decimal al sistema binario. El mtodo que se explicar a continuacin es general, puede
aplicarse tanto a nmeros positivos como negativos y consiste en:
P2 Luego, el nmero entero obtenido debe convertirse a su equivalente binario. Hay que tener en
cuenta que si el nmero es negativo, deber complementarse a 2.
Ejemplo 20:ConvertiralsistemabinariolosnmerosA10=2,32yB10=4,34.Utilizarparala
representacin binaria palabras de 8 bits y adoptar un formato Q tal que permita la mejor
aproximacinposible(esdecirconlamejorresolucin).
Para obtener lamejor resolucin en las representaciones, debe utilizarse la mayor cantidad
posible de bits para la parte decimal del nmero binario (es decir, el mayor K posible).
Teniendoencuentalaexpresin[5],paraA10 larepresentacindeberealizarseenformatoQ5
yparaB10enformatoQ4.Acontinuacin,paraefectuarlaconversinaplicaremoslospasos
explicadosanteriormente.
ParaA10=2,32tenemos:
P1 SetrabajaconK=5;entonces:A10=2,3225=74,24.Descartamoslapartedecimal,
entoncesA10=74.
P2 ConvertimoselenteroasuequivalentebinariodeN=8bits,A2=01001010.
P3 ColocamoselpuntoocupandoK=5bitsparalapartedecimal,entonces:
A10=2,32 A2=010.01010
TCNICAS DIGITALES 1 REPRESENTACIN Y OPERACIONES ARITMTICAS CON NMEROS EN PUNTO FIJO - 16 / 19 -
ParaB10=4,34tenemos:
P1 B10=4,3424=69,44.Descartamoslapartedecimal,entoncesB10=69.
P2 ConvertimoselenteroasuequivalentebinariodeN=8bits(encomplementoa2,yaque
esnegativo),B2=10111011.
P3 ColocamoselpuntoocupandoK=4bitsparalapartedecimal,entonces:
B10=4,34 B2=1011.1011
Si cada resultado obtenido en las conversiones del ejemplo anterior, vuelve a convertirse al sistema
decimal mediante la expresin [5], veremos que no coinciden directamente con los valores
originales de los nmeros A10 y B10, slo son aproximaciones. Aparece un error, denomina error de
cuantizacin, este error ser menor cuanto mas bits sean utilizados para la parte decimal (siempre
que el nmero pueda representarse dentro del rango establecido por la expresin [7]).
El corrimiento o desplazamiento de un nmero es una operacin en la que los N bits del mismo se
corren hacia la izquierda o hacia la derecha. La longitud del desplazamiento se denomina n, que
corresponde a los n bits que se ha desplazado el nmero. Estos n bits constituyen un hueco,
cuyo relleno depende del tipo de desplazamiento. Los desplazamientos que veremos son:
Desplazamiento Lgico y Desplazamiento Aritmtico.
Ejemplo 21: Para los nmeros de 8 bits A2=11001000 y B2=01111000 realizar los siguientes
desplazamientos con una longitud n=3: A) Desplazamiento lgico hacia derecha e izquierda.
B)Desplazamientoaritmticohaciaderechaeizquierda.
A2=11001000 B2=01111000
Desp.LgicoaDerecha 00011001 00001111
A)
Desp.LgicoaIzquierda 01000000 11000000
Desp.AritmticoaDerecha 11111001 00001111
B)
Desp.AritmticoaIzquierda 01000000 11000000
Como puede apreciarse, en el desplazamiento aritmtico hacia la derecha, hay una extensin del bit
de signo.
Ejemplo 22:MultiplicarydividiralnmeroenteroA2=11001000,por23=10002.
Con el ejemplo anterior puede comprobarse que la multiplicacin y la divisin de un nmero por la
unidad seguida de ceros, produce el desplazamiento aritmtico del nmero hacia uno u otro
extremo.
Para efectuar este tipo de conversiones, debe tenerse en cuenta que el nmero pueda representarse
dentro del formato Q deseado. Es decir, debe considerarse el rango determinado por la expresin
[7]. En el ejemplo puede observarse que al disminuir la cantidad de bits K de la parte decimal, se
produce mayor error en la representacin del nmero.
BIBLIOGRAFA
- Mario C. Ginzburg; Introduccin a las tcnicas digitales con circuitos integrados; octava
edicin, ao 1998.