2008-12-17 200 views
3

我需要將Python中的unicode字符串轉換爲其他類型,例如unsigned和signed int 8位,unsigned和signed int 16位,unsigned和signed int 32位,unsigned和signed int 64位,雙字,浮點,字符串,無符號和有符號8位,無符號和有符號16位,無符號和有符號32位,無符號和有符號64位。python中unicode字符串的轉換

我需要你的幫助。

回答

10

使用int()將字符串轉換爲整數。 Python沒有不同的固定寬度整數,所以你只會得到一種類型的東西。

然後使用struct到整數打包成一個固定的寬度:

res = struct.pack("=B",i) ## uint8_t 
res = struct.pack("=b",i) ## int8_t 

res = struct.pack("=H",i) ## uint16_t 
res = struct.pack("=h",i) ## int16_t 

res = struct.pack("=I",i) ## uint32_t 
res = struct.pack("=i",i) ## int32_t 

res = struct.pack("=Q",i) ## uint64_t 
res = struct.pack("=q",i) ## int64_t 

res = struct.pack("=f",i) ## float 
res = struct.pack("=d",i) ## double 

struct產生含有以二進制數的字節串。

編輯: 從評論它聽起來像你只是想將字符串(十進制數字)轉換爲整數。只需使用int()即可,但不能獲得指定類型的所有複雜上溢/下溢語義。你不能在python中重現它,至少不需要編寫大量的代碼。

我想如果你想得到更多的幫助,你必須更準確地瞭解你想達到的目標。

+0

@Douglas:我很佩服你的心靈能力(或者你的運氣:)。我仍然看不到從問題 - 指定 - 直接連接到「使用int()將字符串轉換爲整數」...我只會建議結構模塊。 – tzot 2008-12-18 09:02:32

相關問題