转换为十六进制字符串时出现错误“要求整数”?

时间:2018-12-10 07:53:34

标签: python

我正在尝试将c_uint转换为十六进制字符串,但出现错误:

ldd /path/to/file.so

错误:十六进制(QTestStream):参数1具有意外的类型c_ulong

尝试时:

x = c_uint(1083113632)
y = hex(x)

错误:TypeError:需要一个整数

我搜索了类似的解决方案,但没有找到合适的解决方案。

如何将c_uint转换为十六进制字符串?

2 个答案:

答案 0 :(得分:0)

关闭,您需要像这样对value对象本身调用c_uint属性:

x = c_uint(1083113632)
y = hex(x.value)
print(y)

答案 1 :(得分:0)

运行时:

z = ctypes.c_uint(x).value

x已经是c_uint了,这就是为什么此行引发错误的原因,请改用x的值:

>>> x = c_uint(1083113632)
>>> z = x.value
>>> hex(z)
'0x408f00a0'