Monografias.com > Computación > General
Descargar Imprimir Comentar Ver trabajos relacionados

Aritmética de computadoras




Enviado por Pablo Turmero



    Monografias.com

    REPRESENTACIÓN DE DATOS
    Una expresión binaria como 01111000 puede tener en el computador distintos significados:
    Un número binario sin signo
    Un número binario con signo
    Un número BCD
    Un carácter ASCII
    Una instrucción
    Una dirección
    El significado que se le dé dependerá del tipo de operación que se le imponga en el desarrollo de una tarea.

    Monografias.com

    REPRESENTACIÓN DE DATOS
    Si 01111000 es interpretado como un número binario sin signo su valor en base decimal sería 120.
    El algoritmo de conversión es como sigue: Para el número binario su valor es:

    es decir:

    Monografias.com

    REPRESENTACIÓN DE DATOS
    En la representación del número binario con signo, el bit más significativo del número binario es un bit de signo: si dicho bit es 0 el número es positivo y si es 1, el número es negativo.
    La magnitud de un número binario con signo positivo se determina utilizando el mismo algoritmo empleado anteriormente para números binarios sin signo. Así por ejemplo el número 00010010 corresponde en base decimal a +18.

    Monografias.com

    REPRESENTACIÓN DE DATOS
    Para representar un número binario negativo, se cuentan con dos notaciones: la notación del complemento a dos y la notación signo magnitud.
    Para obtener el negativo de un número positivo en notación complemento a dos, se complementan todos los bits y se suma un 1 al bit menos significativo. Por ejemplo el número positivo 01110110 tiene por complemento a dos el número 10001010 que es negativo porque su bit más significativo es 1.

    Monografias.com

    REPRESENTACIÓN DE DATOS
    El complemento 2 de este número es 01110110. Al aplicar el algoritmo anterior se obtiene la magnitud decimal 118. El número negativo es por tanto –118.
    De hecho, el negativo de un número binario con signo es su complemento a dos.
    Sin embargo hay que señalar que la notación Complemento a Dos no es la única representación para los números binarios con signo. Otra notación muy conocida es la de signo magnitud.

    Monografias.com

    REPRESENTACIÓN DE DATOS
    En la notación signo magnitud, los números positivos se escriben de la misma manera que los números en notación complemento a dos. Por ejemplo el número +118 se escribe como 01110110, donde el bit más significativo es el signo y los bits restantes representan la magnitud.
    Para determinar el correspondiente número negativo en esta notación, basta con cambiar el bit de signo, asi el número –118 es 11110110, la magnitud permanece igual. Compárese con la representación del número –118 en complemento a dos.

    Monografias.com

    ARITMÉTICA CON ENTEROS
    Esta diferencia de notación en los números binarios con signo también se observa en los algoritmos utilizados para realizar distintas operaciones aritméticas.
    Por ejemplo para sumar –7 = 1111 más +5 = 0101 en la notación signo magnitud hay que separar los signos y las magnitudes. Si los signos son iguales, las magnitudes se suman; si los signos son diferentes, la magnitud más pequeña debe restarse de la magnitud más grande y el resultado se acompaña del signo de la mayor magnitud: 1010.

    Monografias.com

    ARITMÉTICA CON ENTEROS

    Monografias.com

    ARITMÉTICA CON ENTEROS
    En cambio para la notación complemento a dos, la realización de la suma aritmética emplea el mismo algoritmo utilizados en números decimales. Ejemplos:
    (-7) + (+5)
    1001
    0101
    1110 = -2
    Acarreo = 0

    Monografias.com

    ARITMÉTICA CON ENTEROS
    (-7) + (-6)
    1001
    1010
    0011 = 3
    Acarreo = 1
    En la última suma, el acarreo no está junto con el resultado, normalmente se ignora.

    Monografias.com

    ARITMÉTICA CON ENTEROS
    Entonces ocurre un desborde en el resultado de la operación y la computadora lo consigna como acarreo en alguno de sus registros internos.
    Es usual reconocer un desborde en el resultado si el signo de este es contrario a lo esperado.

    Monografias.com

    ARITMÉTICA CON ENTEROS
    Para multiplicar dos números binarios sin signo, se puede aplicar el algoritmo usualmente utilizado en numeración decimal. Ejemplo:

    Monografias.com

    ARITMÉTICA CON ENTEROS
    Este algoritmo se puede realizar con más eficiencia haciendo una suma progresiva de productos parciales sin tener que esperar hasta el final para ello y se evita así la necesidad de almacenar todos los productos parciales ocupando registros.
    El diagrama de flujo se ilustra en la siguiente figura.

    Monografias.com

    Monografias.com

    ARITMÉTICA CON ENTEROS
    De acuerdo con este diagrama, el multiplicador y el multiplicando están ubicados en los registros Q y M. El acumulador A, de igual número de bits que M, se carga inicialmente con 0. El bit de acarreo se inicializa con 0.
    El algoritmo empieza leyendo uno por uno los bits del multiplicador. Si Q0 es 1, se suma el multiplicando al registro A y el resultado es almacenado en A.

    Monografias.com

    ARITMÉTICA CON ENTEROS
    Entonces se desplazan todos los bits de los registros C, A y Q, una posición a la derecha, de manera que el bit de C pasa a Am-1, A0 pasa a Qn-1, Q0 se pierde.
    Si Q0 es 0, no se realiza la suma, sólo se efectúa el desplazamiento.
    Este proceso se repite para cada bit del multiplicador original. El producto de m + n bits resultante queda en los registros A y Q.

    Monografias.com

    ARITMÉTICA CON ENTEROS
    Una aplicación se da en el siguiente ejemplo.
    Luego se ilustra un diagrama de bloques del hardware de la operación.
    La secuencia de operaciones para obtener este resultado contiene sumas y desplazamientos:

    Monografias.com

    ARITMÉTICA CON ENTEROS

    Monografias.com

    ARITMÉTICA DE ENTEROS CON SIGNO ALGORITMO DE BOOTH
    Para multiplicar números binarios con signo se acude al algoritmo de Booth cuyo diagrama de flujo se ilustra en la siguiente figura.
    El multiplicador y el multiplicando se ubican en los registros Q y M. El acumulador A, de igual número de bits que M, se carga con 0. El bit de arrastre Q+ se inicializa con 0. Q0 es el bit menos significativo de Q.

    Monografias.com

    ARITMÉTICA DE ENTEROS CON SIGNO ALGORITMO DE BOOTH
    El algoritmo empieza comparando Q0 con Q+. Si ambos son iguales, todos los bits de A y Q se desplazan una posición hacia la derecha, de manera que Q0 se desplaza a Q+, A0 se desplaza a Qn-1, el espacio vacío a la izquierda de A es ocupado por una copia de Am-1, que también se ha desplazado hacia la derecha.

    Monografias.com

    Monografias.com

    ARITMÉTICA DE ENTEROS CON SIGNO ALGORITMO DE BOOTH
    Si Q0 > Q+, al registro A debe restársele el registro M ante de pasar a los desplazamientos. Si Q0 < Q+, al registro A se le suma el registro M previo a los desplazamientos. El proceso se repite tantas veces dependiendo del número de bits del multiplicador Q.
    El resultado aparecerá al final en los registro A y Q.

    Monografias.com

    ARITMÉTICA DE ENTEROS CON SIGNO ALGORITMO DE BOOTH
    En el ejemplo que sigue se multiplicarán los números binarios con signo M = 10111 y Q = 10011, ambos negativos. El resultado es un número positivo: 0001110101

    Monografias.com

    ARITMÉTICA DE ENTEROS CON SIGNO ALGORITMO DE BOOTH

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN
    La división es una operación algo más compleja que la multiplicación pero está basada en los mismos principios generales. Para números binarios sin signo, se puede acudir al algoritmo empleado en números decimales.
    Un ejemplo:

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN
    En el siguiente diagrama se ilustra el diagrama de flujo de de la división de números binarios sin signo.
    El divisor se ubica en M y el dividendo en Q. En cada paso, los registros A y Q se desplazan un bit hacia la izquierda. M se resta de A para determinar si A divide el resto parcial.

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN
    Si se cumple, Qo se hace 1, si no, Qo se hace cero y M se suma de nuevo a A para recuperar el valor anterior. El proceso se repite n pasos, el cociente queda en Q y el residuo en A.
    Este proceso puede aplicarse también para números negativos de la siguiente manera:
    Cargar el divisor en M y el dividendo en A y Q. El dividendo debe estra expresado como número en complemento a dos de 2n bits.

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN
    Por ejemplo el número 0111 es 00000111, y el número 1001 es 11111001.
    A y Q se desplazan 1 bit hacia la izquierda. Si M y A tienen el mismo signo, entonces A = A – M, de otro modo A = A + M.
    La operación anterior tiene éxito si el signo de A es el mismo antes y después de la operación. En ese caso y si A= 0 y Q = 0, entonces se hace Q0 = 1.

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN
    Si la operación anterior no tiene éxito y Ao Q son distintos de 0, entonces Q0 = 0, y hay que restablecer el valor de A.
    Hay que repetir estos pasos n veces. El resto está en A. Si los signos del divisor y del dividendo fueran iguales, el cociente está en Q; si no, el cociente correcto será el complemento a dos de Q.

    Monografias.com

    Monografias.com

    ARITMÉTICA DE ENTEROS – DIVISIÓN
    Ejemplo:

    Monografias.com

    REPRESENTACIÓN DE PUNTO FLOTANTE
    La representación de números binarios fraccionarios puede darse como se hace con los números decimales.
    Por ejemplo el número +8.25 puede escribirse 01000.01
    Esta notación tiene sus limitaciones cuando se tratan números muy grandes o fracciones muy pequeñas. En los números decimales esta limitación se supera con la notación científica.

    Monografias.com

    REPRESENTACIÓN DE PUNTO FLOTANTE
    Por ejemplo:
    Es un número de veinte cifras. Esta notación aplicada a los números binarios es conocida como representación de punto flotante.
    Un número real o de punto flotante tiene la siguiente forma:

    Monografias.com

    REPRESENTACIÓN DE PUNTO FLOTANTE
    Donde M es la mantisa, b es la base de numeración y E es el exponente. Por ejemplo, el número binario sin signo 10110.011 puede representarse como
    (Gp:) mantisa
    (Gp:) base
    (Gp:) exponente

    Monografias.com

    REPRESENTACIÓN DE PUNTO FLOTANTE
    El punto fraccionario se ha desplazado hasta dejar sólo una cifra en el lado izquierdo y las demas cifras en el lado derecho. Esto se llama normalización.
    La normalización de la mantisa exige que el número que queda a la izquierda del punto fraccionario sea un 1. Asi por ejemplo:

    Monografias.com

    REPRESENTACIÓN DE PUNTO FLOTANTE
    Los números negativos pueden escribirse también en la notación científica. Sin embargo la representación del complemento a dos, que trabaja muy bien para números enteros negativos, no se utiliza aquí. La implementación de la aritmética de punto flotante usada en los circuitos electrónicos es mucho más complicada que para la de números enteros.

    Monografias.com

    REPRESENTACIÓN DE PUNTO FLOTANTE
    Por esta razón, la aritmética de punto flotante se suele implementar separadamente en el coprocesador.
    En la representación de punto flotante, se emplea para la mantisa la notación signo-magnitud y al exponente se le afecta con un sesgo.

    Monografias.com

    ESTANDAR DE LA IEEE
    El formato 754 del IEEE se desarrolló para facilitar la portabilidad de los programas de un procesador a otro. En la figura adjunta se ilustran los formatos de punto flotante de 32 bits y de 64 bits.
    En el formato de 32 bits, se dispone de un bit de signo S, un exponente de 8 bits y una mantisa de 24 bits.
    En la figura que sigue se muestra el formato de punto flotante de 80 bits.

    Monografias.com

    ESTANDAR DE LA IEEE
    Al observar detenidamente el formato de 32 bits, debe notarse que para indicar la mantisa se dan sólo 23 bits. Sucede que ahí no se ha considerado el bit entero 1 de la mantisa que está a la izquierda del punto fraccionario en la representación normalizada. Este bit es implícito.

    Monografias.com

    ESTANDAR DE LA IEEE
    Por otro lado, el exponente se almacena como un exponente polarizado: al exponente real se le agrega la polarización de 127 en binario para el formato de 32 bits y de 1023 en binario para el formato de 64 bits. Para el formato de 80 bits la polarización es de 16383.

    Monografias.com

    ESTANDAR DE LA IEEE

    Monografias.com

    ESTANDAR DE LA IEEE
    Formato IEEE para registros de 80 bits:

    64 bits para la parte fraccionaria de la mantisa, 15 bits para el exponente polarizado, un bit para signo.

    Monografias.com

    ESTANDAR DE LA IEEE
    Ejemplos:
    El número decimal +12 se escribe en binario 01100; normalizando se obtiene:
    S = 0; 1100 = 1.100 Expo (+3)
    Exponente:
    Mantisa: 10000000000000000000000 (23 dígitos)

    Monografias.com

    ESTANDAR DE LA IEEE
    b) El número decimal –12 se escribe en binario

    y se obtiene:
    S = 1;
    Exponente = 10000010;
    Mantisa = 10000000000000000000000 (23dígitos)
    En formato IEEE:
    11000001010000000000000000000000 = C1400000h

    Monografias.com

    ESTANDAR DE LA IEEE
    c) El número decimal –1.75 se escribe en binario
    y se obtiene:
    S = 1; Exponente = 01111111;
    Mantisa = 11000000000000000000000
    O sea 10111111111000000000000000000000
    d) El número decimal +0.25 = en binario es:
    S = 0; E = 01111101;
    M = 00000000000000000000000
    O sea 00111110100000000000000000000000

    Monografias.com

    ESTANDAR DE LA IEEE
    Otro ejemplo consiste en dar el número de acuerdo al estándar:

    Monografias.com

    ARITMÉTICA DE PUNTO FLOTANTE
    Las operaciones aritméticas de punto flotante se resumen en el siguiente cuadro:
    Para los operandos x e y,

    Monografias.com

    ARITMÉTICA DE PUNTO FLOTANTE
    En la aritmética de punto flotante, la multiplicación y la división son sencillas. En el siguiente diagrama se ilustra la multiplicación de punto flotante.
    Si cualquiera de los operandos X o Y es 0, el resultado es 0. El primer paso consiste en sumar los exponentes. Si los exponentes están almacenados en forma sesgada, su suma tendría un doble sesgo. Por lo tanto hay que eliminar el sesgo antes de sumarlos y el resultado volver a sesgarlo.

    Monografias.com

    ARITMÉTICA DE PUNTO FLOTANTE
    El resultado podría dar lugar a un desborde que debe ser indicado y concluir el algoritmo.
    Si el exponente del producto está dentro del rango apropiado, se multiplican las mantisas teniendo en cuenta los signos, aplicando el algoritmo de multiplicación. Tras calcular el producto se normaliza y se redondea el resultado.
    Para el caso en que la multiplicación de las mantisas se haga con el algoritmo de Booth, tomar en cuenta que las mantisas deben estar en formato complemento 2.

    Monografias.com

    Monografias.com

    PROBLEMAS UTILIZANDO EL ALGORITMO DE BOOTH

    Monografias.com

    PROBLEMA RESUELTO DE PUNTO FLOTANTE
    Desarrolle el producto de los números: (- 3.25) x (14.75) x (-1). En la solución utilice los algoritmos estudiado en clase; asuma que los registros tienen una magnitud de siete bits.
    Expresar el producto final en las bases: diez, dieciséis. Además en el formato IEEE

    Monografias.com

    PROBLEMA RESUELTO DE PUNTO FLOTANTE
    Los registros M y Q tienen una mantisa de siete bits. El contenido de los registros M y Q es:
    +3.25 = 011.01
    -3.25 = 100.11
    +14.75 = 01110.11
    M = 0111011 x 2-2
    Q = 1110011 x 2-2
    Aquí el número –3.25 se ha ajustado al tamaño de siete bits del registro Q. Las mantisas son enteras.

    Monografias.com

    PROBLEMA RESUELTO DE PUNTO FLOTANTE

    Monografias.com

    PROBLEMA RESUELTO DE PUNTO FLOTANTE
    El resultado es un número negativo:
    R = 11110100000001 x 2-4
    Este número debe ser multiplicado por –1 que en binario complemento dos se escribe como:
    Q = 1111111 x 20
    Acomodando R para un registro de 7 bits con el principio del mínimo error, se obtiene:
    M = 1010000 x 20
    Al truncar el número R se comete un error, el asunto es que el error sea mínimo. M y Q se multiplican con el algoritmo de booth.

    Monografias.com

    PROBLEMA RESUELTO DE PUNTO FLOTANTE

    Monografias.com

    PROBLEMA RESUELTO DE PUNTO FLOTANTE
    Como resultado de la operación se tiene:
    R = 0110000 x 20
    Está en notación complemento dos, pero como es positivo, es igual a la notación signo magnitud.
    R = 30 hex = 48 decimal
    En formato IEEE:
    R = + 1.10000 x 2+5
    Sesgando el exponente:
    00000101 + 01111111 = 10000100
    Luego: R = 01000010010000000000000000000000
    R = 42400000 hex

    Monografias.com

    PROBLEMA RESUELTO
    Desarrollar el producto de los números +7.13, -4.1, -1.5, considerando que los registros M y Q son de 8 bits. Dar el resultado en binario y en decimal. Hacer un análisis de los errores.
    En notación complemento dos:
    +7.13 = 0111.001000010—
    -7.13 = 1000.110111101—
    +4.1 = 0100.00011001100—
    -4.1 = 1011.11100110011—
    +1.5 = 01.1
    -1.5 = 10.1

    Monografias.com

    PROBLEMA RESUELTO
    Se multiplica primero:
    M = 01110010 x 2-4 con Q = 10111110 x 2-4,
    donde –M = 10001101 x 2-4
    Resultado parcial = 1110001000011010 x 2-8
    = 11100010.00011010

    Truncando: 100010.00 = 10001000 x 2-2

    Monografias.com

    PROBLEMA RESUELTO
    Ahora hay que multiplicar M = 10001000 x 2-2
    por Q = 1111110.1 = 11111101 x 2-1
    Resultado = 0101101000 x 2-3 = 0101101.000 que en decimal es +45.0
    Debería salir (+7.13) x (-4.1) x (-1.5) = 43.84 lo que implica un error del orden de 1.15

    Monografias.com

    PROBLEMA RESUELTO
    Sumar los números que están en formato IEEE de 32 bits C0FC000H y 40A4000H.
    Se debe traducir los números a binario:
    C0FC000H = 1100000011111100000000000000, de donde el signo es negativo, el exponente sesgado es 10000001 y la mantisa es 1.1111100000000000000;
    40A4000H = 0100000010100100000000000000, de donde el signo es positivo, el exponente sesgado es 10000001 y la mantisa es
    1. 0100100000000000000;

    Monografias.com

    PROBLEMA RESUELTO
    El exponente sesgado = exponente real + 127;
    luego: Exponente real = 10000001 – 01111111 = 00000010 = +2
    Los números son
    X = – 1.11111 x 2+2
    Y = + 1.01001 x 2+2
    Como los números están en notación signo magnitud y son de signo contrario, se resta la magnitud más grande menos la más pequeña y al resultado se le da el signo de la magnitud más grande:

    Monografias.com

    PROBLEMA RESUELTO
    R = – 0.10110 x 2+2, en notación signo magnitud.
    En decimal R = – 2.75 y en formato IEEE:
    R = – 1.0110 x 2+1
    Exponente sesgado = 00000001 + 01111111 = 10000000
    R = 11000000001100000000000 = C0300000H

    Monografias.com

    PROBLEMA 1
    Ejecutar el producto de los números (-12) y (-4); asumir que ambos números se encuentran almacenados en los registros M y Q respectivamente. Considerar que el registro M está conformado por de seis bits de mantisa y el registro Q conformado por cinco bits de mantisa.
    Mostrar el resultado en las bases diez, ocho y dieciséis.

    Monografias.com

    PROBLEMA 2
    Ejecutar el producto de dos números (-17.5) y (-6.4); asumir que los datos se encuentran almacenados en los registros M y Q respectivamente, donde cada registro está conformado por de seis y cinco bits de mantisa.
    Mostrar el resultado en las bases diez y dieciséis. Hacer una evaluación de los errores por truncamiento.

    Monografias.com

    PROBLEMA 3
    Ejecutar el producto de dos números (+13.8) y (- 4.625); asumir que los datos se encuentran almacenados en los registros M y Q respectivamente, donde cada registro está conformado por de seis y cuatro bits de magnitud.
    Mostrar el resultado en las bases diez y dieciséis. Hacer una evaluación de los errores por truncamiento.

    Monografias.com

    PROBLEMA 4
    Ejecutar el producto de dos números (-27.1) y (+3.75); asumir que los datos se encuentran almacenados en los registros M y Q respectivamente, donde ambos registros están conformado por de seis bits de magnitud.
    Mostrar el resultado en las bases diez y en formato IEEE.

    Monografias.com

    PROBLEMA 5
    Ejecutar el producto de dos números (F.2h) y (3.1h); asumir que los datos se encuentran almacenados en los registros M y Q respectivamente.
    Mostrar el resultado en las bases diez y en formato IEEE.

    Monografias.com

    PROBLEMA 6
    Ejecutar el producto de dos números (2.28) y (4.48); asumir que los datos se encuentran almacenados en los registros M y Q respectivamente.
    Mostrar el resultado en las bases diez, ocho y dieciséis.

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter