Coma fija
# Coma fija

La representación de coma fija es una forma de notación científica que consiste en destinar una cantidad fija de dígitos para la parte entera y otra para la parte fraccionaria. La cantidad de dígitos destinados a la parte fraccionaria indica en definitiva la posición de la coma dentro del número. Esta posición, que es siempre fija, la podemos indicar con un factor de escala implícito que ubica la coma en el lugar requerido. Es decir, podemos representar un número fraccionario como un número entero multiplicado por un factor de escala. En general, el factor de escala puede ser arbitrario e indica cuál es la longitud del intervalo que separa dos representaciones consecutivas, por ejemplo: dn-1dn-2…d0,d-1d-2…d-m=dn+m-1…d0 · b-m.

## Características

### Operaciones aritméticas

Esta longitud es siempre fija para cualquier par de representaciones consecutivas en todo el rango de representación. En este sistema, el programador debe modificar el factor de escala cuando alguna operación produce un resultado fuera del rango de representación.

Por ejemplo: si la suma de dos números en punto fijo produce acarreo, se debe modificar el factor de escala si no se quiere perder significación en el resultado. Esto implica modificar el factor de escala de todos los números en punto fijo que utiliza el programa con la consecuente pérdida de precisión. Estos sistemas de representación ofrecen un rango y una precisión limitados.

Este sistema presenta cierta dificultad al operar con sumas y restas. El computador debe analizar el signo de los operadores para decidir la operación que tiene que hacer. Así, si la operación es una suma, pero uno de los operadores es negativo, se ha de cambiar por una resta. Por el contrario, las operaciones de multiplicar y dividir se tratan sin dificultad, operándose, por un lado, con las magnitudes, y por otro, con los signos.

### Rango de representación

Con este sistema se representan los enteros desde el $\scriptstyle -(2^{n-1}-1)$ hasta el $\scriptstyle (2^{n-1}-1)$, siendo n el número de bits. Por tanto el rango de representación es $\scriptstyle [-2^{n-1}+1,2^{n-1}-1]$ y la resolución es de “1″. El “cero” presenta las dos representaciones 000…00 y 100…00, lo que a veces genera dificultades.

## Ejemplo

Por ejemplo, el valor de los siguientes números, todos ellos representados con 8 bits:

    10101,110 = $1×2^4$ + $0×2^3$ + $1×2^2$ + $0×2^1$ + $1×2^0$ + $1×2^{-1}$ + $1×2^{-2}$ + $0×2^{-3}$ = $21,75_{10}$ corrección: 1,0101110 x $2^4$
    01001,011 = $0×2^4$ + $1×2^3$ + $0×2^2$ + $0×2^1$ + $1×2^0$ + $0×2^{-1}$ + $1×2^{-2}$ + $1×2^{-3}$ = $9,375_{10}$

De los 8 bits hemos fijado y reservado 5 para la parte entera y 3 para la fraccionaria. En los anteriores ejemplos la coma está fija y sirve para separar la parte entera de la parte fraccionaria.

Al usar la notación en coma fija, queda muy limitado el número de cantidades a representar y todas ellas deben tener la misma resolución. En el caso anterior no podremos representar números enteros mayores o iguales que 32 $(2^5)$ ni números más pequeños que 0,125 $(2^{-3}).$ Debido a este problema, su uso se vio reducido con la aparición de la representación en coma flotante.

