0

私は組み込みシステムに取り組んでいます。私たちのプラットフォームは 32 ビットなので、time_tサイズは 32 ビットです。

char今のところ、構造体を配列として Windows 7 コンピューターに送信したいと考えています。私の構造体のフィールドの1つはですtime_t。構造を変更することはできません。

したがって、時間値を 32 ビット変数で Windows マシンに送信する必要があり、char 配列が到着したら、32 ビットの unsigned int 値を 64 ビットに変換する必要がありますtime_t

32 ビットは 1970 年から始まり、64 ビットは 1600 年から始まるtime_tため、32ビット整数を 64 ビットに直接変換することはできないと思います。time_t

では、変換する方法はありますか?

4

2 に答える 2

2

参照: time、_time32、_time64 ドキュメント

どちらも 1970 年 1 月 1 日から始まります。char として送信する場合は、エンディアンを気にするだけで済みます。

于 2012-06-27T09:38:58.863 に答える
0

精度、つまり単位は同じ(秒)ですか?その場合、差を引いて 32 ビットに切り捨てることにより、大きい方の数値を変換できるはずです。

必要な秒数を計算するのは少し難しいかもしれません... Wolfram Alphaを試しましたが、「1.168 * 10 10秒」よりも正確な答えを得る方法がわかりません。

于 2012-06-27T09:27:49.863 に答える