2016-11-15 8 views
0

ブロブの後にDB(Firebird)を格納する.netアプリケーションのリバースエンジニアリングを行います。 〜0.00と〜6.00の間の18個の数字が含まれています。これがどのようなデータ構造であるか、このヘクスを10進数または浮動小数点に変換する方法を知っていますか?この範囲は0.00〜6.00です。データ構造のリバースエンジニアリング

FE 13 73 64 7A 59 FB 3F EB 8C 9B 85 26 75 05 40 A0 2F 2D 06 96 73 00 40 B8 
A8 BE 1D 0F E5 01 40 D2 DF C9 6A 79 83 03 40 97 65 59 96 65 B9 0C 40 B2 88 
F1 7E 55 DE 05 40 E4 45 5E E4 45 9E 00 40 34 05 20 CD 9E B9 FB 3F 58 20 9F 
8B 53 D2 FC 3F 1A 44 DB 4D 77 4E 02 40 03 F9 5C 9C 92 B6 FF 3F 85 54 48 85 
54 C8 00 40 E0 C9 6A 79 63 04 05 40 87 05 F2 B9 38 25 09 40 2D 41 79 FA 0D 
66 03 40 CA 77 49 64 11 A3 FE 3F 57 AA D8 BD 10 7F FD 3F 

ありがとうございました!

答えて

0

数値はちょうど18個のIEEE-754倍精度浮動小数点数が連結しているように見えます。

BitConverter.ToDoubleを使用すると、これらのバイトのうち8つを再び数値に変換できます。したがって、このバイト配列を8バイトのチャンクで反復処理する必要があります。

あなたの特定の例は以下の番号につながる:

FE 13 73 64 7A 59 FB 3F => 1.7093452380952 
EB 8C 9B 85 26 75 05 40 => 2.6822023809524 
A0 2F 2D 06 96 73 00 40 => 2.0564384920635 
B8 A8 BE 1D 0F E5 01 40 => 2.2368452380952 
D2 DF C9 6A 79 83 03 40 => 2.4391964285714 
97 65 59 96 65 B9 0C 40 => 3.5905257936508 
B2 88 F1 7E 55 DE 05 40 => 2.7335615079365 
E4 45 5E E4 45 9E 00 40 => 2.0772817460317 
34 05 20 CD 9E B9 FB 3F => 1.7328174603175 
58 20 9F 8B 53 D2 FC 3F => 1.8013492063492 
1A 44 DB 4D 77 4E 02 40 => 2.2883134920635 
03 F9 5C 9C 92 B6 FF 3F => 1.9820734126984 
85 54 48 85 54 C8 00 40 => 2.0978174603175 
E0 C9 6A 79 63 04 05 40 => 2.6271428571429 
87 05 F2 B9 38 25 09 40 => 3.1431746031746 
2D 41 79 FA 0D 66 03 40 => 2.4248313492063 
CA 77 49 64 11 A3 FE 3F => 1.9148115079365 
57 AA D8 BD 10 7F FD 3F => 1.8435218253968