Bienvenido: Ingresar
location: Diferencias para "WebHome/Hardware/PuntoFlotante"
Diferencias entre las revisiones 5 y 20 (abarca 15 versiones)
Versión 5 con fecha 2010-10-19 17:28:23
Tamaño: 5678
Comentario:
Versión 20 con fecha 2010-10-19 18:37:21
Tamaño: 5418
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 3: Línea 3:
#format inline_latex
Línea 12: Línea 13:
La mayoría de los microprocesadores como es el caso del !ARM7TDMI, no poseen en forma nativa la posibilidad de su uso, se debe recurrir a coprocesadores o librerías para poder usarlos, en el caso particular de las computadores personales a partir del 80486DX y sus sucesores vino incorporado el coprocesador en el mismo microprocesador. La mayoría de los microprocesadores como es el caso del ARM7TDMI, no poseen en forma nativa la posibilidad de su uso, se debe recurrir a coprocesadores o librerías para poder usarlos, en el caso particular de las computadores personales a partir del 80486DX y sus sucesores vino incorporado el coprocesador en el mismo microprocesador.
Línea 15: Línea 16:
Como se indicó esta representación se realiza mediante una serie de valores los cuales representan las distintas partes del número
%BEGINLATEX{label="eq10" scale="40" density="360" }%
$\underbrace{-}''{sig.} \underbrace{1.10111}''
{mantisa} \times \underbrace{2^{1101}}_{exp.}$
%ENDLATEX%
Como se indicó esta representación se realiza mediante una serie de valores los cuales representan las distintas partes del número.

$$$ \under
brace{-}_{sig.} \underbrace{1.10111}_{mantisa} \times \underbrace{2^{1101}}_{exp.} $$
Línea 21: Línea 22:
%BEGINLATEX{label="eq11" scale="40" density="360" }%
$nro = (-1)^s \cdot m \cdot 2^e$
%ENDLATEX%
$$$ nro = (-1)^s \cdot m \cdot 2^e $$
Línea 31: Línea 29:
%BEGINLATEX{label="eq20" scale="40" density="360" }%
$e_{IEEE} = e + 2^{m-1} - 1$
%ENDLATEX%
$$$ e_{IEEE} = e + 2^{m-1} - 1 $$
Línea 46: Línea 42:
%BEGINLATEX{label="eq30" scale="40" density="360" }%
$nro = 1,45 \times 10^5$
%ENDLATEX%
$$$ nro = 1,45 \times 10^5$$
Línea 50: Línea 44:
%BEGINLATEX{label="eq40" scale="40" density="360" }%
$nro = 145 \times 10^3$
%ENDLATEX%
$$$ nro = 145 \times 10^3 $$
Línea 55: Línea 48:
%BEGINLATEX{label="eq50" scale="40" density="360" }%
$ 1=< m <2$
%ENDLATEX%
$$$ 1=< m <2 $$
Línea 74: Línea 65:
=== Short Real o Float === === Single precision, Short Real o Float ===
Línea 77: Línea 68:
   * Rango numérico 1.1754E-38 < nro < 3.4028E+38     * Rango numérico 1.1754E-38 < nro < 3.4028E+38
Línea 79: Línea 70:
||31|| 30||29|| ....||25||24 ||23||22||21||20|| ... ||4||3||2||1||0||
||'''Sig'''|||||||||| '''Exponente''' |||||||||||||||||||| '''Mantisa''' ||
||<tablewidth="20%">{{{31}}}||{{{30 29 .... 25 24 23}}}||{{{22 21 20 ...  4 3 2 1 0}}}||
||'''Sig'''|| '''Exponente''' || '''Mantisa''' ||

==== Tamaño ====
Línea 86: Línea 79:
|| '''Total''' || '''32''' ||  || '''Total''' || '''32''' ||
Línea 88: Línea 81:
=== Long Real o Double === === Double precision, Long Real o Double ===
Línea 93: Línea 86:
||63|| 62||61|| ....||53||52 ||51||50||49||48|| ... ||4||3||2||1||0||
||'''Sig'''|||||||||| '''Exponente''' |||||||||||||||||||| '''Mantisa''' ||
||<tablewidth="20%">{{{63}}}||{{{62 61 ....53 52 }}}||{{{51 50 49 48 ... 4 3 2 1 0}}}||
||'''Sig'''|| '''Exponente'''   || '''Mantisa''' ||

==== Tamaño ====
Línea 100: Línea 95:
|| '''Total''' || '''64''' ||  || '''Total''' || '''64''' ||
Línea 107: Línea 102:
||79|| 78||77|| ....||65||64||63||62||61||60||59|| ... ||4||3||2||1||0||
||'''Sig'''|||||||||| '''Exponente''' || '''Ent''' |||||||||||||||||||| '''Mantisa''' ||
||<tablewidth="20%">{{{79}}}||{{{78 77 ....65 64}}}||{{{63}}} ||{{{62 61 60 59 ... 4 3 2 1 0}}}||
||'''Sig'''|| '''Exponente'''                 ||'''Ent'''|| '''Mantisa''' ||

==== Tamaño ====
Línea 115: Línea 113:
|| '''Total''' || '''80''' ||  || '''Total''' || '''80''' ||

Punto Flotante IEEE

Introducción

El punto flotante es una forma de representar números, esta forma de representación, tiene la ventaja de poder trabajar con un rango muy extenso de los mismos, permitiendo realizar operaciones aritméticas y de comparación entre ellos.

Este método consiste en separar al número en una mantisa que indica las cifras significativas y un exponente el cual indica la posición de la coma.

La mayoría de los microprocesadores como es el caso del ARM7TDMI, no poseen en forma nativa la posibilidad de su uso, se debe recurrir a coprocesadores o librerías para poder usarlos, en el caso particular de las computadores personales a partir del 80486DX y sus sucesores vino incorporado el coprocesador en el mismo microprocesador.

Componentes

Como se indicó esta representación se realiza mediante una serie de valores los cuales representan las distintas partes del número.

$$ \underbrace{-}_{sig.} \underbrace{1.10111}_{mantisa} \times \underbrace{2^{1101}}_{exp.} $

Cada una de estas partes del punto flotante tendrán una ubicación determinada dentro de la codificación del número, y su longitud dependerá del tipo de número.

$$ nro = (-1)^s \cdot m \cdot 2^e $

Exponente

Representa la posición de la coma, en el momento de codificar este campo, al exponente calculado le sumaremos un numero, este numero dependerá de la cantidad de bits asignada al exponente y será la mitad del valor que podemos guardar en esa cantidad.

El exponente nos queda.

$$ e_{IEEE} = e + 2^{m-1} - 1 $

Donde e será el exponente verdadero y m es el número de bits del exponente en el formato elegido.

Esta modificación se realiza para evitar el uso de un bit de signo, lo que permite realizar comparaciones mas fácil entre exponentes, dado que estamos sumando la mitad del máximo valor que se puede almacenar en el exponente, transformándolo en un número natural.

Ejemplo

Si nuestro tamaño de exponente es de 8 bits, le estaremos sumando al exponente el numero 127.

Mantisa

La mantisa representa las cifras significativas del número, la característica que se debe tener en cuenta en el momento de codificarla en el campo correspondiente, es que perderemos la información de la coma dentro de ella, es decir, en una notación científica convencional, podemos representar a un número de diferentes maneras $$ nro = 1,45 \times 10^5$ o $$ nro = 145 \times 10^3 $

En el caso del punto flotante, debemos restringir esta representación para poder determinar una posición fija de la coma, para ello se restringe la mantisa a valores comprendidos entre

$$ 1=< m <2 $

de esta forma determinamos una posición fija de la coma y un valor fijo de la parte entera de la mantisa ( entero de m = 1 )

En el momento de codificar la mantisa utilizamos solo la parte a la derecha de la coma, justificada a la izquierda. (Un caso particular es el de 10-Byte real, en el cual el campo de parte entera existe, y obviamente valdrá siempre 1)

Signo

En el caso del punto flotante, en la mantisa se guarda siempre el valor absoluto de la misma, esto significa que en el caso de los numero negativos no se guarda el complemento a 2 sino simplemente el valor absoluto de la mantisa

Solo el bit de signo identificará que tipo de número es

  • 1 -> Negativo

  • 0 -> Positivo

Tipos

Dependiendo de los números a guardar ( amplitud del rango de los números y cifras significativas ), podemos utilizar 2 o 3 formatos para almacenarlos dependiendo del compilador utilizado.

Single precision, Short Real o Float

Esta es la forma mas pequeña de representación en punto flotante

  • Tamaño de la mantisa 23 bits dando aproximadamente 7 dígitos de precisión
  • Rango numérico 1.1754E-38 < nro < 3.4028E+38

31

30 29 .... 25 24 23

22 21 20 ...  4 3 2 1 0

Sig

Exponente

Mantisa

Tamaño

Campo

Tamaño

Signo

1

Exponente

8

Mantisa

23

Total

32

Double precision, Long Real o Double

  • Tamaño de la mantisa 52 bits dando aproximadamente 16 dígitos de precisión
  • Rango numérico 2.2250E-308 < nro < 1.7976E+308

63

62 61 ....53 52 

51 50 49 48 ... 4 3 2 1 0

Sig

Exponente

Mantisa

Tamaño

Campo

Tamaño

Signo

1

Exponente

11

Mantisa

52

Total

64

10-Byte Real o Long Double

  • Tamaño de la mantisa 64 bits dando aproximadamente 19 dígitos de precisión
  • Rango numérico 3.3621E-4932 < nro < 1.1897E+4932

79

78 77 ....65 64

63

62 61 60 59 ... 4 3 2 1 0

Sig

Exponente

Ent

Mantisa

Tamaño

Campo

Tamaño

Signo

1

Exponente

15

P.Entera Mantisa

1

Mantisa

63

Total

80

UntitledWiki: WebHome/Hardware/PuntoFlotante (última edición 2013-10-27 16:12:57 efectuada por GuillermoSteiner)