如何翻译;0x%llx“;从C到python

如何翻译;0x%llx“;从C到python,python,string-formatting,Python,String Formatting,我正在从一个C程序编写的内存缓冲区中读取一些字符串。我需要使用python获取它们并打印它们。但是,当我遇到一个包含%llx的字符串时,python不知道如何解析它: "unsupported format character 'l' (0x6c) at index 14" 我可以使用replace('%llx','%x'),但不会太长。。在这种情况下,python能正确处理这个问题吗?在python v3.3.3和v2.7.6上都进行了测试: >>> print('%x'

我正在从一个
C
程序编写的内存缓冲区中读取一些字符串。我需要使用python获取它们并打印它们。但是,当我遇到一个包含
%llx
的字符串时,python不知道如何解析它:

"unsupported format character 'l' (0x6c) at index 14"

我可以使用
replace('%llx','%x')
,但不会太长。。在这种情况下,python能正确处理这个问题吗?

在python v3.3.3和v2.7.6上都进行了测试:

>>> print('%x' % 523433939134152323423597861958781271347434)
6023bedba8c47434c84785469b1724910ea

在Python v3.3.3和v2.7.6上测试:

>>> print('%x' % 523433939134152323423597861958781271347434)
6023bedba8c47434c84785469b1724910ea
Python(本质上)没有任何long-long的概念。如果要从C代码中提取
long-long
s,只需使用
%x
并完成它——您永远不会从C代码中获取超出
long
范围的值,唯一可能出现的问题是,如果您试图将它们从Python代码发送到C中,只需使用(带有一个新样式的格式字符串):

Python(本质上)没有任何long-long的概念。如果要从C代码中提取
long-long
s,只需使用
%x
并完成它——您永远不会从C代码中获取超出
long
范围的值,唯一可能出现的问题是,如果您试图将它们从Python代码发送到C中,只需使用(带有一个新样式的格式字符串):


试一试,看看会发生什么happens@norlesh-我已经尝试过了,但我无法预测会出现的每个选项。我要求提供一种更正确的方法来实现这一点。您是否使用PyString_FromFormat()?“我需要使用python获取它们并打印它们”-您是否确实需要转换为整型类型或从整型类型转换为整型类型,或者您可以将其作为字符串读取并直接打印该字符串?请尝试一下,看看有什么效果happens@norlesh-我试过了,但我不能预测会出现的每一个选项。我要求提供一种更正确的方法来实现这一点。您是否使用PyString_FromFormat()?“我需要使用python获取它们并打印它们”-您是否确实需要转换为整数类型或从整数类型转换,或者您可以将其作为字符串读取并直接打印字符串?
print('{0:x}'.format(your_int))