inline  void    real2uexp( const f32r )

{

    *(i32*)&r ^= *(i32*)&r >> msb< i32 >() | msb_value< i32 >();

}


inline  void    uexp2real( const f32r )

{

    *(i32*)&r ^= ~( *(i32*)&r >> msb< i32 >() ) | msb_value< i32 >();

}


inline  void    real2uexp( const f64r )

{

    const   i32u c = *( (i32*)&r + 1 ) >> msb< i32 >();

    *(i32u*)&r ^= c;

    *( (i32u*)&r + 1 ) ^= c | msb_value< i32 >();

}


inline  void    uexp2real( const f64r )

{

    const   i32u c = ~( *( (i32*)&r + 1 ) >> msb< i32 >() );

    *(i32u*)&r ^= c;

    *( (i32u*)&r + 1 ) ^= c | msb_value< i32 >();

}


부동소수를 unsigned int 레벨로 비교가능하게 재배치한다~ ( 그리고 복원 )


http://cafe.daum.net/codeinside/b8FO/80