1

次のコードを c から Python に変換しようとしています。C コードは次のようになります。

  seed = (time(0) ^ (getpid() << 16));
  fprintf("0x%08x \n", seed);

0x7d24defb のような値を出力します。

そしてpythonコード:

  time1 = int(time.time())
  seed  = (time1 ^ (os.getpid() <<16))

次のような値を出力します: 1492460964

アドレスのような値を取得するには、Python コードで何を変更する必要がありますか?

4

3 に答える 3

6

値の表示方法によって異なります。-functionsの%xフラグは、指定された値を 16 進数で表示します。printfPython では、hex関数を使用して値を 16 進数表現に変換できます。

于 2013-04-16T10:33:42.500 に答える
1

同等の Python コード:fprintf("0x%08x \n", seed);

>>> '0x{:08x}"'.format(1492460964)
'0x58f525a4"'

hex()Cコードのようにゼロをサイズ8にパディングしないことに注意してください。

于 2013-04-16T10:36:40.820 に答える
1

私はこれがあなたが何だと思います:

>>> n =hex (int(time.time()) ^ (os.getpid() <<16))
>>> print n
0x431c2fd2
>>>
于 2013-04-16T10:54:08.170 に答える