我是python新手,遇到了以下问题:我需要将一个整数转换为一个6字节的十六进制字符串。
例如。 281473900746245-->;“\xFF\xFF\xBF\xDE\x16\x05”
十六进制字符串的格式很重要。int值的长度是可变的。
格式“0xffffbf949309L”对我不起作用。(我用十六进制(int值)得到这个)
我的最终解决方案(在“播放”一段时间后)是:
def _tohex(self, int_value):
data_ = format(int_value, 'x')
result = data_.rjust(12, '0')
hexed = unhexlify(result)
return hexed
谢谢你的帮助!
在Python 3.2或更高版本中,可以使用integer的^{} 方法。
如果您不使用Python3.2(我很确定您没有),请考虑下一种方法:
可能有更好的解决方案,但您可以这样做:
故障:
更新:
根据@multipleinstances和@Sven的注释,由于您可能要处理长值,因此可能需要稍微调整hex的输出:
但是,有时十六进制的输出可能是奇数长度,这会中断解码,因此最好创建一个函数来执行此操作:
相关问题 更多 >
编程相关推荐