Doy programacion en t. pascal en i. quimica y m gustaria sbr como pasar d binario a coma flotante y pto fijo?

exactamente lo q busco en informacion para hacer ejercicios de codificacion etc..

Respuestas:
Hola Tamara,

Es dificil explicar en algunas lineas como se codifican los numeros de punto flotante pero lo voy a intentar. Al final doy un ejemplo paso a paso para realizar esta conversion. Si tienes alguna duda puedes escribirme a yiech _ at_ yahoo.com, cambia la _at_ por arroba:

Uno de los estandares mas utilizados para representar numeros de punto flotante es el IEEE 754. este es el estandar que tu computadora usa y es el que voy a explicar a continuacion:

Un numero de punto flotante es de la forma (+/-) mantisa x 10^exponente

Punto Flotante de Precision Simple:
(este es el que se usa cuando en lenguaje C tu declaras una variable como "float")

Se representan con 32 bits de la siguiente forma:

* signo - 1 bit ( el bit mas significativo, es decir el de hasta la izquierda)
* exponente - 8 bits ( el exponente es codificado en exceso 127)
* Mantisa - 23 bits ( los bits menos significativos)


Punto Flotante de Precision Doble:
(este es el que se usa cuando en lenguaje C tu declaras una variable como "double")

Se representan con 64 bits de la siguiente forma:

* signo - 1 bit ( el bit mas significativo, es decir el de hasta la izquierda)
* exponente - 11 bits ( el exponente es codificado en exceso 1023)
* Mantisa - 52 bits ( los bits menos significativos)


NOTA: El codigo exceso X, implica que al valor real le debes sumar X. Esto es para que todos los exponentes posibles sean representados con numeros sin signo "unsigned".

por ejemplo, si el exponente es 8, entonces codificado en exceso 127 = 8 + 127 = 135



Asi es que la representacion binaria toma una forma parecida a esta:
------------------------------.
| signo | exponente | mantisa |
------------------------------.


Algo a considerar es que la mantisa se presenta "Normalizada", es decir, el punto decimal en la representacion binaria se recorre a la izquierda hasta que el ultimo bit con valor "1" se encuentre a la izquierda del punto. Obviamente al correr el punto debe de modificarse el exponente.

Como la mantisa es normalizada, entonces siempre tendra un "1" a la izquierda del punto. Por esta razon la mantisa puede representarse unicamente con los bits que estan a la derecha del punto (es decir, se asume que habra un "1" a la izquierda por la normalizacion).

Por ejemplo, la mantisa normalizada en binario: 1010 0000 0000 0000 0000 000
equivale a : 1.101 en binario por que le agregamos el punto a la izquierda, y el "1" a la izquierda del punto.
Este mismo numero en decimal es : 1.625 ( 1x2^1 + 1x2^-1 + 0x2^-2 + 1x2^-3 = 1.625)


A continuacion explico paso a paso como convenrtir de binario a decimal un numero de PF de precision simple .

Asume que el numero es: 1 10000010 11110110000000000000000

1) Determina el signo:
a) Busca el bit mas significativo (el de hasta la izquierda). Si es "1" el numero es negativo, si es "0" el numero es positivo

2) Determina el exponente:
a) extrae del codigo los 8 bits del exponente. En este caso son 10000010
b) conviertelo a decimal: 10000010 = 1x2^7 + 1x2^1 = 130
c) substrae el exceso (como este es un numero de precision simple, el excesso es 127) : 130-127 = 3
d) El exponente es 3

3) Determina la mantisa:
a) extrae la mantisa del codigo original. En este caso es 11110110000000000000000
b) Desnormalizala agregando el punto decimal y un bit con valor "1" hasta la izquierda: 1.11110110000000000000000
c) conviertela a decimal: 1x2^1 + 1x2^-1 + 1x2^-2 + 1x2^-3 + 1x2^-4 + 1x2^-6 = 1.9609375

4) Determina el numero completo

a) es un numero negativo, con exponente 3 y mantisa 1.9609375
Entonces el numero es: - 1.9609375 x 10^3


Espero haber sido claro. Para los numeros de punto fijo el proceso es mucho mas simple. Igual y al rato edito esta respuesta y le agrego como hacerlo.

Saludos
ay Tamara te ayudaria pero de programacion hace siglos no toco los cuadernos lo siento

YA CONTESTASTE ESTA :
http://es.answers.yahoo.com/question/ind.

Fuente de inspiracion:

http://equilibriomental.blogspot.com/.

Feliz Vida
®

Contestar al poste del usuario, correccion del contenido de la garantia de EsQnA.com no.


preguntas y respuestas agregadas...