0

インターフェイスが送信したデータを読み取る方法に問題があります。

私がやりたいことは、現在の時刻をインターフェイスに送信することです。ただし、インターフェイスは2の賛辞を使用するため、これを行うと:

Time = time.time()
timer = struct.pack('<d', Time)

インターフェイスは、この 1010010111111000011111000010111 のような 2 進数を受け取ります。2 の補数を使用しているため、時刻が完全に間違っています。負の数を取得し、1942 年と考えているようです。

私の質問は、時間を 2 進数に変換し、2 進数の先頭を 0 でパックして 8 バイトの長さにする方法です。それで、パックしてインターフェイスに送信できます。

4

2 に答える 2

1

ドキュメントが言うように、 d8バイトの浮動小数点数用です。8 バイト整数はQorを使用しますq

于 2014-02-13T04:38:55.853 に答える
0

Ignacio's answer へのコメントで示しているように、誤っdたものをqorに置き換えた場合、常に出力を正しい長さにパディングするQため、エンディアンが間違っていると思います。代わりに試してください。struct.pack struct.pack(">Q", Time)

于 2014-02-13T04:50:09.893 に答える