2014-04-18 28 views
1

我有一個c代碼來鍵入一個字符串通過指針轉換爲整數。指針類似於python中的c

char s[]="efgh"; 
int * p; 
p=(int *) s; 
printf("%d",*p); 

這讓我的輸出:

1751606885 

這是一個32位整數。

我正在分析一個網絡數據包在python中,需要在Python中的上述功能。 我有個串

s="efgh" 

並希望在一個32位整數(從字節水平)以上。

我該怎麼辦?

回答

8

您可以嘗試struct.unpack

>>> import struct 
>>> 
>>> struct.unpack('<I', 'efgh') 
(1751606885,) 
>>> 
+1

+1,我遲到了:) – emeth

+1

是否有任何選項來獲得無符號整型該值。對於我的網絡分析實施,我得到一個負數。但我需要一個未簽名的。誰能告訴我這裏發生了什麼? – RatDon

+2

@RDdon使用'I'而不是'i',閱讀[two's complement](http://en.wikipedia.org/wiki/Two%27s_complement)。 –