为什么使用 Python 的 ctypes 的 printf 不能打印有符号的数字



>我用C编写了以下代码

short a = 0xFFFE;
printf("hex = 0x%X, signed short = %dn", a & 0xFFFF, a);
Output ---> hex = 0xFFFE, signed short = -2

现在使用 ctypes 在 Python 中做同样的事情

from ctypes import *
mc = cdll.msvcrt
a = c_short(0xFFFE)
mc.printf("hex = 0x%X, signed short = %dn", a, a)
Output ---->    hex = 0xFFFE, signed short = 65534

我不确定为什么输出不同?知道吗?

printf没有

被正确调用。 使用%hX%hd通过短裤。

>>> from ctypes import *
>>> mc = cdll.msvcrt
>>> a=c_short(0xFFFE)
>>> mc.printf('hex=0x%hX, signed short=%hdn',a,a)
hex=0xFFFE, signed short=-2
28

相关内容

  • 没有找到相关文章

最新更新