2013-06-18 65 views
1

如何使用「中投」功能ctypes的一個整數格式轉換爲另一種,以獲得相同的效果,如C:鑄造ctypes的

int var1 = 1; 
unsigned int var2 = (unsigned int)var1; 

回答

3
>>> cast((c_int*1)(1), POINTER(c_uint)).contents 
c_uint(1L) 
>>> cast((c_int*1)(-1), POINTER(c_uint)).contents 
c_uint(4294967295L) 
+0

看起來不錯,謝謝! – Bitrex

0

你可能想看看http://docs.python.org/2/library/ctypes.html#type-conversions

一個例子是比使用CAST()簡單ctypes.cast((ctype.c_byte*4)(), ctypes.POINTER(ctypes.c_int))

+0

感謝答覆。我已閱讀文檔,但我仍不清楚如何執行我的帖子中提到的轉換。 – Bitrex

+0

gnibbler似乎已經清除它:) –

1

使用.value的有關變量:

>>> from ctypes import * 
>>> x=c_int(-1) 
>>> y=c_uint(x.value) 
>>> print x,y 
c_long(-1) c_ulong(4294967295L)