1

私のプロジェクトでは、16 進値 (ビッグ エンディアン) を持つ QString があります。

QString hex_in("413DF3EBA463B0");

hex_in を丸めた double に変換するにはどうすればよいですか? IEEE 754 ( https://en.wikipedia.org/wiki/Double_precision_floating-point_format )

34.5

ユーザーは倍精度を編集し、プログラムでそれを 16 進数に変換する必要があります。

御時間ありがとうございます :)

4

2 に答える 2

0
    double HexToDouble(AnsiString str)
{
  double hx ;
  int nn,r;
  char * ch = str.c_str();
  char * p,pp;
  for (int i = 1; i <= str.Length(); i++)
  {
    r = str.Length() - i;
    pp =   ch[r];
    nn = strtoul(&pp, &p, 16 );
    hx = hx + nn * pow(16 , i-1);
   }
  return hx;
}

大きな16進数の私の関数

結果

72850ccbb88c6226afed9d8d971c8938        -->     1.5222282653101E+38     
000015d85a903c72b6bebdd18fb26811        -->     4.4307191280143E+32
于 2013-10-27T07:35:50.810 に答える