如何使用「中投」功能ctypes的一個整數格式轉換爲另一種,以獲得相同的效果,如C:鑄造ctypes的
int var1 = 1;
unsigned int var2 = (unsigned int)var1;
?
如何使用「中投」功能ctypes的一個整數格式轉換爲另一種,以獲得相同的效果,如C:鑄造ctypes的
int var1 = 1;
unsigned int var2 = (unsigned int)var1;
?
>>> cast((c_int*1)(1), POINTER(c_uint)).contents
c_uint(1L)
>>> cast((c_int*1)(-1), POINTER(c_uint)).contents
c_uint(4294967295L)
你可能想看看http://docs.python.org/2/library/ctypes.html#type-conversions
一個例子是比使用CAST()簡單ctypes.cast((ctype.c_byte*4)(), ctypes.POINTER(ctypes.c_int))
感謝答覆。我已閱讀文檔,但我仍不清楚如何執行我的帖子中提到的轉換。 – Bitrex
gnibbler似乎已經清除它:) –
使用.value的有關變量:
>>> from ctypes import *
>>> x=c_int(-1)
>>> y=c_uint(x.value)
>>> print x,y
c_long(-1) c_ulong(4294967295L)
看起來不錯,謝謝! – Bitrex