.


:




:

































 

 

 

 


,




, , , . 32- , (64 ), 1 + 52 , 1 + 10 . 4,9410−324 1.7910308 ( 2−52 × 2−1022 ~1 × 21024). IEEE 754 . NaN (Not a Number, ) +/-INF (Infinity, ), . , . (, GPU) . , , (. ).

()      
~7.2 ~15.9 ~19.2
(>0), denorm 1,410−45 5,010−324 1,910−4951
(>0), normal 1,210−38 2,310−308 3,410−4932
3,4×10+38 1,7×10+308 1,1×10+4932
S-E-F S-E-F S-E-I-F
1-8-23 1-11-52 1-15-1-63

S , E , I , F

, , .

[ | -]

, , , : . , . ε , {\displaystyle 1\oplus \varepsilon \neq 1} ( {\displaystyle \oplus } ). , a b, , {\displaystyle 1<{\frac {a}{b}}<1+\varepsilon } , .

{\displaystyle \varepsilon =2^{-24}\approx 5,96\cdot 10^{-8}} , , 7 . : {\displaystyle \varepsilon =2^{-53}\approx 1,11\cdot 10^{-16}} , 15 [1].

 

. , , , .

, (. sign), (. exponent) (. mantis). ( IEEE 754) , , , ( , ). , , . :

 
                               
         
                               

, . , :

, , , , . , , , , ; , , , . ,

.

, .

, . , . . , .

[] 1 2 ( IEEE 754) o 2.1 (Binary16, Half precision) o 2.2 (Binary32, Single precision, float) o 2.3 (Binary64, Double precision, double) o 2.4 (Binary128, Quadruple precision) o 2.5 3 o 3.1 ( ) o 3.2 (NaN) o 3.3 o 3.4 4 o 4.1 o 4.2 o 4.3 5 . 6 7 o 7.1 o 7.2

[]

(. normal form) , ( ) . : (, 4 , , , ), (. normalized), () ( ), () ( ). . ( ) . , ( , ). ( ) , , , IEEE 754. , ( , .), ( ).

[] ( IEEE 754)

[] (Binary16, Half precision)

́ ́ ́ , ( 32- ). , .

 
            1,                    
           
                                 

. . , , ( ).

.

.

, .

, .

, .

, .

 

[] (Binary32, Single precision, float)

́ ́ ́ , ( 32- ). , .

  (8 ) (23+1 )
                  1,                                                
             
                                                                   

.

 

[] (Binary64, Double precision, double)

́ ́ ́ , ( 32- ). , .

  (11 ) (52+1 )
       
                        1,                                                                                                   000
             

.

[] (Binary128, Quadruple precision)

́ ́ ́ , ( 32- ). .

  (15 ) (112+1 )
       
                                1,                                                                                            
                         

 

(112+1 )
                                                                                                                            0000
   
                                                                                                                             

.

, . , - (, gcc x86 __float128, ). Quadruple .

 

[]

, , , . ( ) . , NaN (Not a Number, " ", ) .

, .

IEEE 754
Half precision - 6,10×10-5..65504    
Single presicion float 3,4×10-38..3,4×1038    
Double precision double 1,7×10-308..1,7×10308    
Extended precision ( Intel) long double 3,4×10-4932..3,4×104932    

[]

[] ( )

, . , , , . , .

   
0/1           1,                     =
             
                                   


. :

( )

( )

[] (NaN)

NaN " not a number ". NaN , ( . ). IEEE 754 NaN , , .

   
0/1           1, 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 =
             
                                   

NaN NaN. , . .

NaN?

,

NaN, .

NaN ≠ NaN, , .

 

[]

. , . IEEE 754 , , . .

   
0/1           1,                     =
             
                                   

.

[]

(. denormalized/subnormal numbers) - , . ("") . , ( , ) , . , , ( , ) , , .

, , :

, ( )

, ( )

, , ( ), , (1 ), , ( , 0 ).

, . - , .

, . Isaac Dooley, Laxmikant Kale "Quantifying the Interference Caused by Subnormal Floating-Point Values"[1]

()
IBM PowerPC 970 2,4
AMD Athlon 6,0
Intel Pentium 3 15,8
AMD Athlon 64 21,4
AMD Opteron64 23,8
Intel Core Duo 44,2
Intel P4 Xeon 97,9
Intel Pentium 4 131,0
Intel Itanium 2 183,2
Sun UltraSPARC IV 520,0

(gcc, icc, xlc) . , .

( ) ( ), . , Flush-to-zero (FTZ) Denormals-are-zero (DAZ). , , . .
"" , . , , , , , , .

IEEE 754-2008 (denormal denormalized numbers) subnormal numbers, , "". " ".

 

[]

[]

. , , , .

, . .

[]

. , , /, , , . :

32- .

. .

.

. 32- , .

, , .

, 32- :

10000111 ( , 23 ).

, .

= , ... ...

.. .

, , .

, , .

32- :

10000111

, = , = ( ).

, .

, .

,

. .

, , .

10000110

. .

, .

, :

,

, - .

[]

Double.

, . , ( ):

  62..52 51..0

 

, , , , .. . . , , ( ). , . , .. . , . , Double , () (). , .

, :

1. ;

2. , .. M 2 p, M ( ()) p , ;

3. ;

4. (0 ; 1 ), .

. , .

1. .

2. .

3. . () ().

4.

     
  62..52 51..0

5.

, : C073850000000000(16).

.

. 3FEC600000000000(16)

     
  62..52 51..0

 

1. , , . : () (); .

2. , , .

3. , .

 

: , ,

, . , :

,

,

.

.

[] 1 o 1.1 o 1.2 2 o 2.1 o 2.2 3 ( ) o 3.1 o 3.2 4 ( ) o 4.1 , o 4.2 o 4.3 5 . 6

[]

(. Signed magnitude repr





:


: 2016-11-24; !; : 2816 |


:

:

- - , .
==> ...

2028 - | 1961 -


© 2015-2024 lektsii.org - -

: 0.151 .