小弟有点不太明白,看了这位大侠的文章,搞得头晕,而且对C++不是很熟,所以请大家能帮忙看看,
http://dev.csdn.net/develop/article/28/28201.shtm
很长,他的代码是这样的,C++void DecodeFloat( BYTE pByte[4] )
{
 printf( "原始(十进制):%d  %d  %d  %d\n" , (int)pByte[0],
  (int)pByte[1], (int)pByte[2], (int)pByte[3] );
 printf( "翻转(十进制):%d  %d  %d  %d\n" , (int)pByte[3],
  (int)pByte[2], (int)pByte[1], (int)pByte[0] );
 bitset<32> bitAll( *(ULONG*)pByte );
 string strBinary = bitAll.to_string<char, char_traits<char>, allocator<char> >();
 strBinary.insert( 9, "  " );
 strBinary.insert( 1, "  " );
 cout << "二进制:" << strBinary.c_str() << endl;
 cout << "符号:" << ( bitAll[31] ? "-" : "+" ) << endl;
 bitset<32> bitTemp;
 bitTemp = bitAll;
 bitTemp <<= 1;
 LONG ulExponent = 0;
 for ( int i = 0; i < 8; i++ )
 {
  ulExponent |= ( bitTemp[ 31 - i ] << ( 7 - i ) );
 }
 ulExponent -= 127;
 cout << "指数(十进制):" << ulExponent << endl;
 bitTemp = bitAll;
 bitTemp <<= 9;
 float fMantissa = 1.0f;
 for ( int i = 0; i < 23; i++ )
 {
  bool b = bitTemp[ 31 - i ];
  fMantissa += ( (float)bitTemp[ 31 - i ] / (float)( 2 << i ) );
 }
 cout << "尾数(十进制):"  << fMantissa << endl;
 float fPow;
 if ( ulExponent >= 0 )
 {
  fPow = (float)( 2 << ( ulExponent - 1 ) );
 }
 else
 {
  fPow = 1.0f / (float)( 2 << ( -1 - ulExponent ) );
 }
 cout << "运算结果:" << fMantissa * fPow << endl;
}其实我只是想把IEEE标准的浮点数16进制形式化成十进制的浮点形式(double),请问该怎么算?拜托啦!