2013-04-16 39 views
1

我想將以下代碼從c轉換爲Python。 C代碼如下所示:C到Python代碼轉換(打印地址類似的值)

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

輸出值如0x7d24defb。

而Python代碼:

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

輸出像值:1492460964

什麼我需要在Python代碼修改,所以我得到的地址樣值?

+3

'十六進制(1492460964)'? –

回答

6

這取決於值的顯示方式。 printf函數中的%x標誌以十六進制顯示給定的值。在Python中,您可以使用hex函數將值轉換爲十六進制表示。

1

等效Python代碼:fprintf("0x%08x \n", seed);

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

注意hex()不會單獨墊零大小8像C代碼一樣。

1

我想這是你什麼:

>>> n =hex (int(time.time())^(os.getpid() <<16)) 
>>> print n 
0x431c2fd2 
>>>