0

サーバー (Python) で実行する必要があるコード (C++) をコピーしています。以下の部分まではすべてうまくいきました。

一言で言えば、ここに私がC++プログラムに持っているものがあります:

 int main() {
 ...
 ...
 int64 value = 0;
 bool blah = function1(&value);
 ...
 }

 bool function1(int64* value)
 {
 ...
 uchar pb[8];
 pb = '\x00\x00\x00\x00*Q \x00'; 
 memcpy(value,pb,8);
 //now value has the value '0x7fff33516970'
 }

そうです、char 配列を作成し、その値を int64 にコピーします。

私の質問は次のとおりです。Pythonでそれを行うにはどうすればよいですか? つまり、pb と同等のバイト文字列を持っていますが、そこからどこへ行くべきかわかりません (特に、すべてのゼロがあるため...)。

4

2 に答える 2

3

structモジュール、特に を見てくださいstruct.unpack。できるよ:

value, = unpack("q", string)

「q」は 64 ビットの符号付き整数を意味し、文字列は単純に数値の生のバイト表現です。エンディアンに注意してください。

于 2012-07-02T18:55:45.353 に答える
1

C++ の文字列ではなく、文字に単一引用符が使用されます。する必要があります"\x00\x00\x00\x00*Q \x00"pbさらに、メモリが割り当てられ、定数文字列で上書きされるという点で、コードはほとんど意味がありません。

于 2012-07-02T18:59:58.050 に答える