- 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 | |
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: |