- 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
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.
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:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
En general, un número real x distinto de cero, se representa en notación científica normalizada en la forma:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
Exactamente del mismo modo podemos utilizar la notación científica en el sistema binario. En este caso, tenemos que:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
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:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
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:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
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:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
Solución: El número 26.32 en binario se escribe del siguiente modo:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
Si expresamos el error como la diferencia entre el valor y el número realmente almacenado en el ordenador, obtenemos:
Para ver la fórmula seleccione la opción "Descargar" del menú superior
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.
Para ver la fórmula seleccione la opción "Descargar" del menú superior
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. |