Sei sulla pagina 1di 3

Representacin de un nmero entero

Un nmero entero es un nmero completo que puede ser negativo. Por lo tanto, el nmero
se debe codificar de manera que se pueda distinguir si es positivo o negativo y de forma
que siga las reglas de adicin. El truco consiste en utilizar un mtodo
denominado complemento doble.

Un nmero entero o cero se representar en base binaria (base 2) como un


nmero natural, con la excepcin de que el bit de mayor peso (aquel que se encuentra
ms a la izquierda) representa el signo ms o menos. Por lo tanto, para un nmero
entero o cero, este bit se debe establecer en 0 (lo que corresponde al signo ms, as
como 1 es el signo menos). De este modo, si un nmero natural se codifica utilizando 4
bits, el mayor nmero posible ser 0111 (o 7 en base decimal).

Generalmente, el mayor nmero entero posible codificado utilizando n bits ser 2n-1-1.

Un nmero entero negativo se codifica utilizando complementos dobles.

El principio de los complementos dobles:


Se elige un nmero negativo.

Se toma su valor absoluto (su equivalente positivo)

Se representa en base binaria utilizando n-1 bits

Cada bit se cambia con su complemento (es decir, los ceros se


reemplazan con unos y viceversa)

Se suma 1 Ntese que al sumar un nmero y sus complementos dobles


es resultado es 0 Veamos esto con un ejemplo:

Queremos codificar el valor 5 utilizando 8 bits. Para hacer esto:

escriba el 5 en sistema binario 00000101

cmbielo por su complemento 11111010

sume 1: 11111011

la representacin binaria en 8 bits de 5 es 11111011

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

Representacin de un nmero real


El objetivo es representar un nmero 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 nmero
binario, 5,25 en sistema decimal) mediante el formato 1.XXXXX... * 2 n (en nuestro ejemplo,
1.0101*22). El estndar IEEE 754 define cmo codificar un nmero real.
Este estndar ofrece una forma de codificar un nmero utilizando 32 bits, y define tres
componentes:

el signo ms/menos se representa por un bit: el bit de mayor peso (aquel que se
encuentra ms a la izquierda)

el exponente se codifica utilizando 8 bits inmediatamente despus del signo

la mantisa (los bits despus del punto decimal) con los 23 bits restantes As, la
codificacin sigue la forma:

seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm

la s representa al bit del signo.

cada e representa al exponente del bit

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 configuracin numrica se denomina NaN (Not a number),
que significa No es un nmero.

Se le debe sumar 127 (01111111) al exponente para convertir al decimal en un


nmero real dentro del sistema binario. Por lo tanto, los exponentes pueden variar de
-254 a 255

As, la frmula para expresar nmeros reales es:


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

donde:

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 fraccin, la nica que se expresa, y la que se le suma a 1 para


realizar el clculo.

Aqu
hay
Se codificar el valor 525,5.

un

525,5 es positivo, por lo que el primer bit ser 0.

Su representacin en el sistema binario (base 2) es: 1000001101.1

Al normalizarlo, obtenemos: 1.0000011011*2^9

ejemplo:

Sumndole 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

La representacin binaria de 525,5 bajo el estndar IEEE 754 es, por lo tanto:

0 1000 1000 00000110110000000000000


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

A continuacin hay otro ejemplo, esta vez utilizando un nmero 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

Queremos 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 (slo se representan los dgitos


despus del punto decimal, ya que el nmero entero es siempre equivalente a 1)

La representacin binaria de 0,625 bajo el estndar IEEE 754 es, por lo tanto:
1 1111 1110 01000000000000000000000
1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 en sistema hexadecimal)

Potrebbero piacerti anche