AU DESSUS DE TOUT

Rechercher dans ce blog:

Chante Alléluia au Seigneur...

jueves, 5 de abril de 2007

operaciones con numeros binarios-estudiar y responder a los ejercicios

Representación de la Información en las Computadoras

Sistemas de Numeración
Sistema Binario
Operaciones con Números Binarios
Representación de Números Enteros
Notación Científica Normalizada
Representación de los números en punto flotante

Sistemas de Numeración
Los sistemas de numeración son las distintas formas de representar la información numérica. Se nombran haciendo referencia a la base, que representa el número de dígitos diferentes para representar todos los números.
El sistema habitual de numeración para las personas es el Decimal, cuya base es diez y corresponde a los distintos dedos de la mano, mientras que el método habitualmente por los sistemas electrónicos digitales es el Binario que utiliza únicamente dos cifras para representar la información, el 0 y el 1.
Otros sistemas como el Octal (base 8) y el Hexadecimal (base 16) son utilizados en las computadoras.

Sistema Binario
Los circuitos digitales internos que componen las computadoras utilizan el sistema de numeración Binario para la interpretación de la información, por tal motivo será el que desarrollaremos en mayor detalle a continuación.
Como mencionamos anteriormente este sistema utiliza dos cifras (el 0 y el 1) en dónde cada una de ellas se denomina bit (contracción de binary digit).
Para medir la cantidad de información representada en binario se utilizan múltiplos que a diferencia de otras magnitudes físicas utilizan el factor multiplicador 1024 en lugar de 1000, debido a que es el múltiplo de 2 más cercano a este último (210=1024).

Múltiplo
R e p r e s e n t a
Nibble
Conjunto de 4 bits
1001
Byte
Conjunto de 8 bits
10101010
Kilobyte (Kb)
Conjunto de 1024 bytes
1024 * 8 bits
Megabyte (Mb)
Conjunto de 1024 Kb
10242 * 8 bits
Gigabyte (Gb)
Conjunto de 1024 Mb
10243 * 8 bits
Terayte (Tb)
Conjunto de 1024 Gb
10244 * 8 bits
El byte es la unidad básica de medida de la información representada mediante este sistema.
Operaciones con Números Binarios
Antes de ver las operaciones básicas de suma, resta, producto y cociente necesitamos conocer como se representa un número decimal en binario y viceversa.
Ejemplo: Decimal a Binario.

Para obtener de un número decimal su representación en el sistema binario, debemos dividir el primero por 2 siendo el resto de cada una de las divisiones leído de derecha a izquierda los que compondrán el número binario.
Ejemplo: Binario a Decimal.
Para transformar un número representado como binario en decimal multiplicamos cada cifra del binario por 2 elevado a una potencia que ira disminuyendo hasta llegar a cero. Para determinar la primer potencia contamos las cifras del binario (5 en este caso) y disminuimos dicho número en 1 unidad (4 en el ejemplo).
Suma de Números Binarios
Es similar a la suma decimal excepto que se manejan sólo dos dígitos (0 y 1).
Las sumas básicas son:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 (número 2 en binario)
Ejemplo: 100110101 + 11010101 =
Se comienza a sumar desde la izquierda, en el ejemplo, 1 + 1 = 10, entonces escribimos 0 y "llevamos" 1. Se suma este 1 a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas la columnas (exactamente como en decimal).
Resta de Números Binarios
Es semejante a la decimal excepto que se utilizan dos dígitos y teniendo en cuenta que se realizan las restas parciales entre dos dígitos de idénticas posiciones, uno del minuendo y otro del sustraendo, si el segundo excede al primero, se sustrae una unidad del dígito de más a la izquierda en el minuendo (si existe y vale 1), convirtiéndose este último en 0 y equivaliendo la unidad extraída a 1 * 2 en el minuendo de resta parcial que estamos realizando. Si es 0 el dígito siguiente a la izquierda, se busca en los sucesivos teniendo en cuenta que su valor se multiplica por 2 a cada desplazamiento a la derecha.
Las restas básicas son:
0 - 0 = 0
0 - 1 = No se puede realizar.
1 - 0 = 1
1 - 1 = 0
Ejemplo: 11001 – 1010 =
Producto de Números Binarios
El producto de números binarios es semejante al decimal, ya que el 0 multiplicado por cualquier otro da 0, y el 1 es el elemento neutro del producto.
Los productos básicos son:
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
Ejemplo: 10110 * 1001 =
Cociente de Números Binarios
La división se realiza en forma semejante al decimal, con la salvedad que las multiplicaciones y restas internas del proceso de la división se realizan en binario.
Ejemplo: 100010 / 110 =
Representación de Números Enteros
Aritmética de computadores
Los computadores no almacenan los números con precisión infinita sino de forma aproximada empleando un número fijo de bits o bytes (grupos de ocho bits). Prácticamente todos las computadoras permiten al programador elegir entre varias representaciones o 'tipos de datos'. Los diferentes tipos de datos pueden diferir en el número de bits empleados, pero también (lo que es más importante) en cómo el número representado es almacenado: en formato fijo (también denominado 'entero') o en punto flotante (denominado 'real').
Aritmética de punto fijo
Un entero se puede representar empleando todos los bits de una palabra de computadora, con la salvedad de que se debe reservar un bit para el signo. Por ejemplo, en una máquina con longitud de palabra de 32 bits, los enteros están comprendidos entre -(231 - 1) y 231 - 1 = 2147483647. Un número representado en formato entero es 'exacto'. Las operaciones aritméticas entre números enteros son también 'exactas' siempre y cuando:
La solución no esté fuera del rango del número entero más grande o más pequeño que se puede representar (generalmente con signo). En estos casos se dice que se comete un error de desbordamiento por exceso o por defecto (en inglés: Overflow y Underflow) y es necesario recurrir a técnicas de escalado para llevar a cabo las operaciones.
La división se interpreta que da lugar a un número entero, despreciando cualquier resto.
Por estos motivos, la aritmética de punto fijo se emplea muy raramente en cálculos no triviales.
Notación Científica Normalizada
En el sistema decimal, cualquier número real puede expresarse mediante la denominada Notación científica normalizada. Para expresar un número en notación científica normalizada multiplicamos o dividimos por 10 tantas veces como sea necesario para que todos los dígitos aparezcan a la derecha del punto decimal y de modo que el primer dígito después del punto no sea cero. Por ejemplo:
En general, un número real x distinto de cero, se representa en notación científica normalizada en la forma:
(1)

En dónde r es un número tal que y n es un entero (positivo, negativo o cero).
Exactamente del mismo modo podemos utilizar la notación científica en el sistema binario. En este caso, tenemos que:
(2)
Donde m es un entero. El número q se denomina mantisa y el entero m exponente. En un ordenador binario tanto q como m estarán representados como números en base 2. Puesto que la mantisa q está normalizada, en la representación binaria empleada se cumplirá que:
(3)
Representación de los números en punto flotante
En un ordenador típico los números en punto flotante se representan de la manera descrita en el apartado anterior, pero con ciertas restricciones sobre el número de dígitos de q y m impuestas por la longitud de palabra disponible (es decir, el número de bits que se van a emplear para almacenar un número). Para ilustrar este punto, consideraremos un ordenador hipotético que denominaremos MARC-32 y que dispone de una longitud de palabra de 32 bits (muy similar a la de muchos ordenadores actuales). Para representar un número en punto flotante en el MARC-32, los bits se acomodan del siguiente modo:

Signo del número real x:
1 bit
Signo del exponente m:
1 bit
Exponente (entero m):
7 bits
Mantisa (número real q):
23 bits

En la mayoría de los cálculos en punto flotante las mantisas se normalizan, es decir, se toman de forma que el bit más significativo (el primer bit) sea siempre '1'. Por lo tanto, la mantisa q cumple siempre la ecuación (3).
Dado que la mantisa siempre se representa normalizada, el primer bit en q es siempre 1, por lo que no es necesario almacenarlo proporcionando un bit significativo adicional. Esta forma de almacenar un número en punto flotante se conoce con el nombre de técnica del 'bit fantasma'.
Se dice que un número real expresado como aparece en la ecuación (2) y que satisface la ecuación (3) tiene la forma de punto flotante normalizado. Si además puede representarse exactamente con m ocupando 7 bits y q ocupando 24 bits, entonces es un número de máquina en el MARC-32.
La restricción de que m no requiera más de 7 bits significa que:

Ya que , la MARC-32 puede manejar números tan pequeños como 10-38 y tan grandes como 1038. Este no es un intervalo de valores suficientemente generoso, por lo que en muchos casos debemos recurrir a programas escritos en aritmética de doble precisión e incluso de precisión extendida.
Como q debe representarse empleando no más de 24 bits significa que nuestros números de máquina tienen una precisión limitada cercana a las siete cifras decimales, ya que el bit menos significativo de la mantisa representa unidades de . Por tanto, los números expresados mediante más de siete dígitos decimales serán objeto de aproximación cuando se almacenen en el ordenador.
Por ejemplo: 0.5 representado en punto flotante en el MARC-32 (longitud de palabra de 32 bits) se almacena en la memoria del siguiente modo:

Ejemplo 5: Suponga un ordenador cuya notación de punto fijo consiste en palabras de longitud 32 bits repartidas del siguiente modo: 1 bit para el signo, 15 bits para la parte entera y 16 bits para la parte fraccionaria. Represente los números 26.32, y 12542.29301 en base 2 empleando esta notación de punto fijo y notación de punto flotante MARC-32 con 32 bits. Calcule el error de almacenamiento cometido en cada caso.
Solución: El número 26.32 en binario se escribe del siguiente modo:
Empleando las representaciones comentadas, obtenemos:
Si expresamos el error como la diferencia entre el valor y el número realmente almacenado en el ordenador, obtenemos:
En cuanto a los otros dos números, obtenemos:

Antes de entrar con detalle en la aritmética de los números en punto flotante, es interesante notar una propiedad de estos números de especial importancia en los cálculos numéricos y que hace referencia a su densidad en la línea real. Supongamos que p, el número de bits de la mantisa, sea 24.
En el intervalo (exponente f = 0) es posible representar 224 números igualmente espaciados y separados por una distancia 1/224. De modo análogo, en cualquier intervalo hay 224 números equiespaciados, pero su densidad en este caso es 2f/224. Por ejemplo, entre 220 = 1048576 y 221 = 2097152 hay 224 = 16777216 números, pero el espaciado entre dos números sucesivos es de sólo . De este hecho se deriva inmediatamente una regla práctica: cuando es necesario comparar dos números en punto flotante relativamente grandes, es siempre preferible comparar la diferencia relativa a la magnitud de los números. En la figura siguiente se representa gráficamente la separación entre dos números consecutivos en función del exponente f en el rango f = [20,30].
Figura: Evolución de la separación entre dos números consecutivos en función del exponente, f, de la representación en punto flotante de un número real.

Route de la sagesse - Manifeste ta presence