You are on page 1of 51

m mm m 

m 



 m  m
m   
m 
 



m m

  
m    
m 
 
 !   ""

Arquitecturas de Computadoras
Curso Propedéutico

Capitulo 2
Aritmética de Punto Flotante

Marco Antonio Ramírez Salinas
Herón Molina Lozano

Œ f == -(-f).0) Œ d>f · · -f > -d - $( $  . double d = ͙. #$%&$ ï '$ $$(&$ $&  )$ * $ $ +     .0 Œ d < 0. Œ h == (int)(double) h Œ f == (float)(double) f int h = ͙. & .0 · · ((d*2) < 0. Œ 2/3 == 2/3. Œ d * d >= 0.0 Œ (d+f)-d == f .& & )$  *&#$ Œ h == (int)(float) h . Œ d == (float) d float f = ͙.

 m$.$ ï . &/ ï 0123 ( 4 (&5  4  &&! && " (&$)6$78 ï 9  &$) ï $ %&&: ï 9.11<6=>6>< .

1<2$ ?$$(# $(&$  $ 4"/($ (   &  B )$ ï $'($   $# $"$ ?$&C$D "$! " "$ (/&$. $%&$m ï ?$m @2A "&$.&4: && $?  ? .

edu/~†kahan/ ͙/ieee754status/754story. &($(&$ m $@2A($!%&$)6$ 47 .cs. (7E4$ †††.berkeley.html .1<1 $) :F$$.

.

I< . $G$($ $$H  "$ > > . A  > ... .> .IA    . . . ..  > . = .I> .  .

  " &4&0$"$8 $$($ $&>  $&$H$&+  Ș v  . $G$ >.

'& ($ $$H "$ ï & .

.I> LK ..> ï " .IAL...$>$$&4 &&>$$&C H &(=7.I<LKL....=7..7=  $&C&$G$$/(.> >6@I< .7= $  $+  ..7.$ .=.... $G$ 26 IA .K>D $ .> J IJA =7.I>L.7=6 m ..

H $&$  $"& ï $ $ $$H  &&(*I>5  $H $$$ $G$" & .

==.=. $G$ ..==.NK> .I =7=.=.NK> ..I2 =7==.M=.M==.M==...I.==.=.= =7===.NK> ..==...=..

.

 &ehp ( &frac ( .&$(G$$& $)M.$).7=D>7=O &*$$ $&. $G$$H $(&$ ï %$# ï 6. (G$$   $&.&$ ï (G$ s ehp frac &" )$ &"?  )$(. > &" )$ $ &$H  .

$(&$ G$ ï (G$ s ehp frac &" )$ &"?  )$(.2" ehp !J " frac  $$&<=" Q G&&&C$ B m$&!   .. &ehp ( &frac ( ï P  G$ $&&+ &C$<" ehp !> " frac  $$& >" "& G$+ &C$."O ." ehp !2>" frac  $$&JA"  G$*$+ &C$.

& $# $&C ï $G$ ï *€ ===K=!*€ .D$ &$H" & *$$ (G$ )$(.=>>K.=> O  $)$&+&CG$R>6.&.&/  R.. ï &*$$ ($$H&C R *.K>2AD +6.& $ )$ $*  &CG$+&&C   G$ $&&+.7=O  ?*$.K>=AJD +6. &CG$  *+.>@Q *+.QR>7=6 mO  $$"?  )$(.>JK.>@O  "& G$+...=> Q *+.$&.K..* ?0&"8 .7***K*>  /$$===K=QR.K.

00002 X 23 ï )$( m R .=.. Õ  R ..>@ | R ..=.00002 ( R .=..==========> ï *$$ | R . '&(G$$&C ï & (&%R. 7=S 5230 = 00002 = .===.2>.A= R ..=.==> Representación de punto flotante: Heh: 4 6 6 D B 4 0 0 Binario: 000 00 00 0 0 000 0000 0000 Ehponente: 40  00 00 0 523: 0 0 0 0 .

& )$(R=7***K*>  ***K*+" ( ï   *R===K=D(R===K=  . & 6$&C ï $G$ *R===K= ï & &*$$& R6&CG$L.

&  $ L=! 6= ï *R===K=D(€ ===K=  H!$ =7=   G$& $$H? P  0&&)$ " "$8 . $&.&=  T!$$.

K.D(R===K=  . ï   *R. &  & ï $G$ *R..K....

& $ $H  .D(€ ===K= 66 "Q  O .7=I=7=R6.. !$).  7)7.7=I=7=RLþD.K..7=I6=7=R6 þ ï *R.&þ Q$($O  $  $ "(&'  " . $$.

ODþ 6 þ .& $# $ $ 7)7 Q6. $$  $.

.

 $ (G$$H $(&$ öU 6 &C 6  $ L  $ L &C LU a a ö= L= .

'&$($(&$P ï .

& &CG$@  H&  "  $$&(G$ ï & &()$&m &C! $&C  $$&=D  $($ 7 6 3 2 0 s ehp frac . $G$$(&$$<" &" )$ &"?  )$(.   )$ A"  $&*$$D$$.

a) .& &$ &*$$ Ehp ehp E 2E 0 0000 -6 /64 (desnormalizado)  000 -6 /64 2 000 -5 /32 3 00 -4 /6 4 000 -3 /8 5 00 -2 /4 6 00 - /2 7 0 0  8 000 + 2 9 00 +2 4 0 00 +3 8  0 +4 6 2 00 +5 32 3 0 +6 64 4 0 +7 28 5  n/a (inf.

.

$)$? s ehp frac | ?alor 0 0000 000 -6 0 0 0000 00 -6 /8*/64 = /52 $ 0 0000 00 -6 2/8*/64 = 2/52   ͙  .

 meros 0 0 00 0 9/8* = 9/8 ormalizados 0 0 00 0 0/8* = 0/8 ". ͙ 0 0 0 7 4/8*28 = 224 0 0  7 5/8*28 = 240 0  000 n/a inf &!$7 .  0 0000 0 -6 6/8*/64 = 6/52 0 0000  -6 7/8*/64 = 7/52 0 000 000 -6 8/8*/64 = 8/52 &! $7 0 000 00 -6 9/8*/64 = 9/52 &? P$7 ͙ 0 00 0 - 4/8*/2 = 4/6 0 00  - 5/8*/2 = 5/6 0 0 000 0 8/8* =  "'.

& J" ï $(&$J" D)&&(m ï R " &*$$ ï (R>" &(G$ ï &CG$)& ï T!$& "G$ .2 6.= . '&+ "G$.&.= 62 = 2 .2  $&C &C m$($ .? $ $(  *& 6.

 $&C &C m$($ . 6=72 = =72 .  "G$.& J"  Q$$O ï $(&$J" D)&&(m ï R " &*$$ ï (R>" &(G$ ï &CG$)& 6.

4 X 0ʹ45 Doble ® 4.2 X 0ʹ308 ï Positivo más Pequeño orm.8 X 0308 . 00͙0 00͙00 .023} Sencillo ® 3. m) X 2ʹ {26.4 X 038 Doble ® . ͙0 ͙ (2. 00͙00 00͙0 2ʹ {23.022} Sencillo ® .022} Ehactamente el n mero mayor desnormalizado ï Uno 0͙ 00͙00 . m) X 2{27.0 ï Positivo más Pequeño Desnorm.0 .0 X 2ʹ {26.0 .0 ï Más Grande orm.9 X 0ʹ324 ï Más Grande Desnorm.52} X 2ʹ {26.8 X 0ʹ38 Doble ® 2. H $ $  G$ *(& # ï Cero 00͙00 00͙00 0.022} Sencillo ® . 00͙00 ͙ (.

  & ( ï &$$(&$$  & " R= ï Q O&C$G$$  $ )$ ""  )$ "$ 6=R=     $"&?  ?&! . 7$($ . 7 &C  &C.&  V #/$&&)  $ W $7E7   $&C.

50   X.50 -ܝ.60 ܝ. $ $(&$ ï  $& "&& & *  #  "' $ G$    "&$ $ "(&' &*$$ !&)   "&$$' $( ï  $Q & $$& /"&XO ܝ.  .50 Ü2.X>6X.40 ܝ.X.X.

X 6X>  .X.X.$4/"'Q6 O X.

 &' ? $ X.X>X>X>6X> Q(&O ota: .$4/"QLO X>X>X>X 6X.7 .

$4/"'+&  & &$ $$ ! &. & >7 .

 & .$4/"+& &&$ $$! &.

7>A2==== .7> 2==== .7> 2===.  ? $  $$ ""'  ï &$&   $ & I" $  ?*$&&$$  "&  .7>A Q&$6$"O .7>A Q!&&$O .7>A Q&$6$"O . .7> Q$&&$O .&  $$&/)?  )$(.7> A1111 . '  ï 7)7D$&$# ? $ . &&&' ? $ ï &#$(& (/&$&)H$ $ &$ "& & & #  $&C  ?$$J=   &$'$$H  .

.

==K> '& &$.$$$H "$ ï H ($ "$ ï 09 8$&"$  )$(. = &&$$& " &4&  G$$R.

I>6"O>.IA >@I<.==> .=7..> QZ.==> .=7.=7===.=7==.7==> Q.I>6"'O> > I.J..I>6"'O>.=7=..=> .$ G$&$ > I >..=7..=7==> QY.=> Q.I>6O >2I<.I> .=.> .

.

JD7O$$  (?&&C&$. + $.$H & $ (&$ ï   $&&+&$$ $*$$>Q7)7>D AD<D. G$+ ï .

>@O  0 0 00 0000 0000 0000 0000 0000 .L7.&6=7@2$$(&$ 6=7@2R6 IA 6..======K====OK >Q.>J6.>@O Q6. Q6.O K Q.> K >6.==> R6=7. $&.> &C$6.O K Q..7.L(G$OK >Q *$$6.>I.

'&> ï .

 $.K> K >= R.JL.=.I>2JLK R>6> L>6A L>6J L>6< LK R=7=.=.=.=.=.2J>2L=7== 1=J>2LK R.I R=7 K.>2R=.=...=.7=.=.K> K >6> )$+= *$$R6>L. %G$R=.=.=.IJAL.>@R.I.=.= R=7>2L=7=J>2L=7=.K 0 0 0 00 00 00 00 00 00 .IAL...=.=.I $&($(&$ .

N> .I R=7 K. K $.7 K .M=. =7 KK >R=7JJJJJK = =7JJJJJKK >R.= =7 KK >R=7JJJJJK = =7JJJJJKK >R.7 K .=.7 K .= R=7=.=. =7 KK >R=7JJJJJK = =7JJJJJKK >R.I .  * $ $&'&> ï .

&&(G$+ 7A=J>2R7>2 LQ7.....=====.6>7 A=J>2K . $(&$ .. '& ï $.=.J LQ@RA LQ R> LQ.R.>2 LQ7= .=.7=..>@LAR.=.> 7 $.=..7=.&$+ > R.7  $&C+6> 7A=J>2 >7 $.>  000 00 0 0 000 0000 0000 0000 .> A79$&   !$&C+ .=.&*$$+.>2OOR7=.K >A 27 $..OOOR.=..2J>2R7..=.

>2 = =7<. =7>2K>R=72 = =72K>R.7= .I>R=72 . 2I>R>72 .>2K>R. $> .> "7=7A=J>2K>R=7<.  * $ $&'& 7> I>R. $=7A=J>2.7>2 .= R=7=. . >I>R...=. =7J>2K>R.I>R272 .. = ..7J>2  .= R.72 ..=.> .

.O K Q.= .$(&$& ï ?& &.7..O. K Q.&$&+  000 000  0000 0000 0000 0000 0000 *$$ (G$ Q6.L(G$OK >Q *$$6.K Q...L7.7.> R6@72..>16.OK >Q. $.OK >Q>O R6.>@O R6..>@O Q6.

_  .

$$(&$ ï $  . .Z > L Q.Oi  ï . Q6.. Q6.Oi   T!  .O .> ..O > >> > Q.

Oi   . &* Q6..O > )$ D$ + Q.

D&C5 $ D$ 5 "(&'   ?($) . & )$&$!  *$$ + . ï %' a >D&4D$$ Y.

$($& G$( .

.

  .

         .

.

   .

   .

  .

   .

        .

.

   .

  .

.

 .

   .

    .

             .

!     .

  .

  .

.

     .

      .

  .

.

 " #$ % .

&' % ( ).

  $.

*  ' +  .

 .

 .

.

  %  * " #   .

 .

.

 &'   *  '     * .

= R6@I>A.> R6=7=.. '& $$(&$Q.> K >= R6. 6=7A @2.= R6@I.7===> K >6.= R6=7=..I>.> R=7.& $H "$$$ $G$$/($&CD $  $$$ G$A" 7 =72.= ? 6=7A @2.J..= R=7..I>.=> K >6> 4$$ $&&)7 .7...IAO =72.> K >= R.= $"$&C$& &)& $$(&$ 4!$.= R.= R.

7 $ &$H$&$&  *$$ D776...OR=7==.7.7===> K >6. LQ6=7..> K >6. ï  >7  $& $  &  $H .7. .=> K >6> R6=7. '& $$(&$Q>IAO ï  ....=> K >6.> K >6.=> K >6> &4 4 &*$$ $&$H ? )$+ 6.

($ 4!  "$ " "$+ =7==.>@  .>JD $ *  $  "$ $ " "$7 Q & *$$ &C /  6A L .==> K >6 R.>@ a 6A a 6. ! >2AD  $ & *$$ &C ? P ! ? )$O .> K >6. R=7=.> D   $ .7===> K >6A "   . '& $$(&$Q IAO ï   7 $&C& D.=> K >6> R=7.&   $$ $ .

'& $$(&$QAIAO ï  A7 .

$& + .7===> K >6A R=7===.I>A.= [ & & ?"  =72.I.= R=7=J>2.= LQ6=7A @2.=O .J.> R.= R.===> R=7===.7===> K >6A  ! $$ $A" D $$4!$ "& " " &$   $$ .

W   "& "(&'!&$ V =&$.  ? &  $(&$ ï $& $) "&$ V "'& W   $($   V $.W  V  .W  V &$$ $. .W    *$($!  ï $$ V a " La "LW    *$($!  .

p      .

 .

.

.

.

.

        .

K Q6. &&G$$$(&$ ï $ Q6.O . .O > >> > ï .> .

O >  )$ + .K >  *$$ + .\ >  %G$$ +.L > ï '  a >D &4D "(&'   ?($)4! "(&' $' & G$( ï m&$G$ &&G$ )$($ &!? . &* Q6.

haciendo un corrimiento a la derecha e incrementando el ehponente. &)&&&G$$$ (&$ . 3. if (ocurrió desbordamiento) { break arrojar una ehcepción. } . } else { signo del producto es negativo. } else { goto paso 3. 2. restar la polarización de la suma para obtener el nuevo ehponente polarizado. } else { 4. Sumar los ehponentes polarizados de los dos n meros. ormalizar el producto obtenido si es necesario. Redondear la mantisa a un n mero apropiado de bits. } if (ya se encuentra normalizado el producto) { 5. Multiplicar las mantisas. stop algoritmo. if (signo de los operandos son iguales) { signo del producto es positivo.

L. .>A .>@OLQ6>L.>@O R6 L.7 & *$$  $&CG$+ 6.>@R.6 >OLQ.= ï  .>@L.IAO &&& $H =72. '&&&G$$$(&$ Q. .>@ RQ6.LQ6>OR6 D&C$& $G$&C+ Q6.= 6=7A @2.>@O.>@.

..====> K >6 D $ $ $$& A" D$& & .=== .====> & .=== .7.7.. '&&&G$$$(&$ Q>IAO ï  >7 &&& $  + .=> K >6 .=== ..7===> K ..=> ==== .7.

(  & *$$  ? $  "$  " "$7    '& &  !  ? $&C !D "   .D  $  & *$$  $$O7 ï   A7 & $  $ &  $ * $ " + ..>@ a 6 a 6.7.>JD $ *   "$  " "$7 Q&C$ &  $G$ &CD >2A a . '&&&G$$$(&$ Q IAO ï   7 4  .(  &    $&CD ! $$  .>A a .=> K >6 .

'&&&G$$$(&$ QAIAO ï  27 "& )$ & $  $ ($ D& )$& $).= R6=7>.7.7.4& &&+ 6..7 /D&  + 6..= R6=7>.=> R=7==.=>K >6 R6=7==.<@2.> R6@I>2.=>K >6 $.=R6@I >.= ....= K 6=7A @2.= $=72.<@2..

W    "&$ )$ "(&'D! $*$ &$ V .  ? & &&G$$(&$ ï G$$$&&$. "&G$W    "&$ )$ "(&'D! $*$ &$ ï $$ V a "]a = K a "K W  *$($!  . V "'&&&G$W   )$$($  V &&&G$$.&$&&.W  V &&&G$ .W  V &&&G$ ".

& (&  G$ & "& "& G$ ï $. $(&$$ ï )$C $.& $# "&(&$  $&&(G$  m)&&$4  ?($$ ?($)  $&$ $* $"&  $. G$*D$ $$)$P &"$)&2 " $(&  $&$ . $  " $$D(&!"&"& .

.0) ¡Si! Œ d > f ï·-f > -d ¡Si! int h = ͙. Œ (d+f)-d == f o: o es asociativa double d = ͙. Œ d * d >= 0.0 ·ï·((d*2) < 0.0 o: 2/3 == 0 Œ d < 0. Si: Sólo cambia el bit de signo Œ 2/3 == 2/3.0 ¡Si! float f = ͙. &G$&'$(&$ Hay que asumir que d o f es a Œ h == (int)(float) h o: 24 bit de mantisa Œ h == (int)(double) h Si: 53 bit mantisa Œ f == (float)(double) f Si: se incrementa precisión Œ d == (float) d o: se pierde precisión Œ f == -(-f).

&4C$& $H$(&$ %$.$$.J" %$$G!"$& $A T"$ "(&'& $2  " &CG&   (: . $2 ï *&G&  @ )$  #   ) ï $X2==&&$ ï V#W &&G&.

.

 $ ï &(m $(&$$  ? & .

  T&.&& .!& ". $$H &(K > C$$  $$$ &$G$    &&$ G$(! $$  $  & &#&  .(/&& & !&  &$ )   .