0

私はこれらの値になるいくつかの16進値にかなり困惑しています。私は少しの間値をいじってみました、そして私はそれを理解することができません。おそらく、ここの誰かが、これらの値が16進数としてどのように表示されるか、またはその逆についての手がかりを私に与えることができます。これらの値を取得したとき、それらは逆順の16進数でした。物事を簡単にするために、左から右に並べました(取得した他の値は逆順だったので、これらの値は逆順である必要があると99%確信しています)。

  • 6C C4 F0 00は、日付/時刻形式で2000年1月1日になります。
  • 6C C4 F0 38も2000年1月1日であるはずですが、これがどのように当てはまるのかわかりません。
  • FF FFFE38は-2である必要があります。
  • 00 FFFFFFは0である必要があります。
  • FF 000000は-1である必要があります。

誰かがこれで私を手伝ってくれるなら、私はそれを謙虚に感謝します!ありがとうございました!

生データ:

00F0C46C38F0C46C38FEFFFFFFFDFFFF

生データは、4バイトのセットで16進数の逆順です。

  • 00F0C46C、2000年1月1日の日付/時刻形式である必要があります
  • 38F0C46C、2000年1月1日の日付/時刻形式である必要があります
  • 38FEFFFF、-2である必要があります
  • FFFDFFFF、-3である必要があります

プログラムが正しく機能し、テーブルを正しく作成しているため、構造が正しいことはわかっています。各列には、異なる方法で処理される値がいくつかあります。

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

4

1 に答える 1

4

バイトオーダーが間違っています。最初のバイトはデッドスペースか他の方法で占有されているようです、そして私はFFあなたが私たちに見せたものの終わりをやめたに違いありません。

言葉に分割:

00  F0C46C38 F0C46C38 FEFFFFFF FDFFFF

ここで、最初の2つの単語のバイト順序を逆にすると、次のようになります。

0x386CC4F0 = 946652400

これは

$ date -ur 946652400
Fri Dec 31 15:00:00 UTC 1999

つまり、UTC+9タイムゾーンの2000年1月1日午前0時です。偶然の一致に近すぎるので、あなたまたはあなたがそのデータを取得した場所はどこでもそのタイムゾーンにあると思います。

ここで、次の2つの単語を適切なバイト順序で示します。

FFFFFFFE
FFFFFFFD

何だと思う?-2と-3の2の補数表現。

于 2012-05-31T02:11:25.427 に答える