Está en la página 1de 4

Representación de números reales y números enteros

Representación de un número en un ordenador

Representar (o codificar) un número significa expresarlo en forma binaria. La


representación de números en un ordenador es necesaria para que este pueda
almacenarlos y manipularlos. Sin embargo, un número matemático puede ser infinito (tan
grande como se desee), pero su representación en un ordenador debe ocupar un número
de bits predeterminado. Por este motivo, es necesario definir el número de bits que se
utilizarán y la manera de interpretarlos para que representen de la manera más eficiente
posible a la entidad. Así, sería inútil codificar un carácter utilizando 16 bits (65.536
posibilidades) cuando, por lo general, se utilizan menos de 256.

Representación de un número natural en una computadora

Un número natural es un número entero positivo o cero. La elección de la cantidad de bits


depende del intervalo de números que se utilizarán. Para codificar números naturales
comprendidos entre 0 y 255, solo se necesitan 8 bits (un byte) ya que 28 = 256. Por lo
general, la codificación de un bit n se puede utilizar para representar números naturales
entre 0 y 2n-1.
Para representar un número natural, después de haber definido el número de bits que se
utilizarán para su codificación, ordena los bits en las celdas binarias según su peso
binario, de derecha a izquierda. Luego, completa los bits que no se utilizan con ceros.

Ejemplos:

Números naturales de 8 bits: desde 0 hasta 28 − 1 = 255.

Números naturales de 16 bits: desde 0 hasta 216 − 1 = 65535.

Números naturales de 32 bits: desde 0 hasta 232 − 1 = 4294967295.

Números naturales de 64 bits: desde 0 hasta 264 − 1 = 18446744073709551615.

El paso de un número entero de base 2 a base 10 y viceversa está expuesto en las


secciones anteriores y no lo comentaremos más.

Representación de un número entero en una computadora

Un número entero es un número natural que puede ser negativo. Por lo tanto, el número
se debe codificar de manera que se pueda distinguir si es positivo o negativo y de forma
que siga las reglas de la adición. El truco consiste en utilizar un método
denominado complemento doble.

Un número entero o cero se representará en base binaria (base 2) como un número


natural, con la excepción de que el bit de mayor peso (aquel que se encuentra más a la
izquierda) representa el signo más o menos. Por lo tanto, para un número entero o cero,
este bit se debe establecer en 0 (lo que corresponde al signo más, así como 1 es el signo
menos). De este modo, si un número natural se codifica utilizando 4 bits, el mayor número
posible será 0111 (o 7 en base decimal). Generalmente, el mayor número entero posible
codificado utilizando n bits será 2n-1-1.

Un número entero negativo se codifica utilizando complementos dobles.

El principio de los complementos dobles. Se elige un número negativo. Luego, se toma su


valor absoluto (su equivalente positivo) y se representa en base binaria utilizando n-1 bits.
Cada bit se cambia por su complemento (es decir, los ceros se reemplazan con unos y
viceversa). Se suma 1. Nótese que al sumar un número y sus complementos dobles el
resultado es 0.

Veamos esto con un ejemplo. Para codificar el valor 5 utilizando 8 bits, escribe el 5 en
sistema binario 00000101. Luego, cámbialo por su complemento 11111010. Suma 1:
11111011. La representación binaria en 8 bits de 5 es 11111011.

Nota: el bit de mayor peso es 1, de manera que es, de hecho, un número negativo.
Si sumamos 5 y -5 (00000101 y 11111011) la suma da 0 (con el remanente 1).

Representación de un número real en una computadora

El objetivo es representar un número con un punto decimal en sistema binario (por


ejemplo, 101.01, que no se lee ciento uno punto cero uno, ya que es, de hecho, un
número binario, 5,25 en sistema decimal) mediante el formato 1.XXXXX... * 2n (en nuestro
ejemplo, 1.0101*22). El estándar IEEE 754 define cómo codificar un número real. Este
estándar ofrece una forma de codificar un número utilizando 32 bits, y define tres
componentes: el signo más/menos se representa por un bit (el bit de mayor peso, aquel
que se encuentra más a la izquierda); el exponente se codifica utilizando 8 bits
inmediatamente después del signo; la mantisa (los bits después del punto decimal) con
los 23 bits restantes. Así, la codificación sigue la forma:

seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm

La s representa al bit del signo, cada e representa al exponente del bit y


cada m representa a la mantisa del bit.

Sin embargo, hay ciertas restricciones para los exponentes. El exponente 00000000 está
prohibido. El exponente 11111111 está prohibido. Sin embargo, a veces se utiliza para
informar de errores. Esta configuración numérica se denomina NaN (Not a number), que
significa “no es un número”. Se le debe sumar 127 (01111111) al exponente para
convertir al decimal en un número real dentro del sistema binario. Por lo tanto, los
exponentes pueden variar de -254 a 255.

Así, la fórmula para expresar números reales es:


(-1)^S * 2^( E - 127 ) * ( 1 + F )

Dónde: S es el bit del signo y, por lo tanto, 0 se entiende como positivo (-1^0=1); E es el
exponente al que se le debe sumar 127 para obtener el equivalente codificado; F es la
parte de la fracción, la única que se expresa, y la que se le suma a 1 para realizar el
cálculo.

A modo de ejemplo se codificará el valor 525,5. Este número es positivo, por lo que el
primer bit será 0. Su representación en el sistema binario (base 2) es: 1000001101.1. Al
normalizarlo se obtiene: 1.0000011011*2^9. Sumándole 127 al exponente, que es 9, da
136 o, en sistema binario (base 2): 10001000. La mantisa está compuesta por la parte
decimal de 525,5 en base 2 normal, que es 0000011011. Como la mantisa debe tomar 23
bits, se deben agregar ceros para completarla: 00000110110000000000000.

Por lo tanto, la representación binaria de 525,5 bajo el estándar IEEE 754 es:

0 1000 1000 00000110110000000000000


0100 0100 0000 0011 0110 0000 0000 0000 (4403600 en sistema hexadecimal)

A continuación otro ejemplo, esta vez utilizando un número real negativo. Se codificará el
valor -0,625. El bit s es 1, como 0,625 es negativo. 0,625 se escribe en sistema binario
(base 2) de la siguiente manera: 0.101. Se busca escribirlo en la forma 1.01 x 2-1.
Consecuentemente, el exponente vale 1111110 como 127 - 1 = 126 (o 1111110 en
sistema binario). La mantisa es 01000000000000000000000 (solo se representan los
dígitos después del punto decimal, ya que el número entero es siempre equivalente a 1).

Por lo tanto, la representación binaria de 0,625 bajo el estándar IEEE 754 es:

1 1111 1110 01000000000000000000000


1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 en sistema hexadecimal).

https://es.ccm.net/contents/62-representacion-de-numeros-reales-y-numeros-
enteros#representacion-de-un-numero-en-un-ordenador

5 de septiembre de 2017 por Carlos-vialfa

http://www.hep.uniovi.es/jfernan/IFC.old/tema1-parte3.pdf

También podría gustarte