【发布时间】:2016-04-17 16:47:44
【问题描述】:
我需要创建一个函数,它接受一个整数并返回该整数的二进制字符串,编码为十六进制编码的十进制,以便稍后打包到一个结构中。
例如,我写过这样的:
def convert_int(x):
"""
Accepts an integer, outputs a hexadecimal string in HCD format
Caution! Byte order is ALREADY little endian!
"""
result = b''
while x > 0:
hcd = chr(int(str(divmod(x, 100)[1]), 16))
result = result + hcd
x = divmod(x, 100)[0]
return result
所以convert_int(1234) 将是3412h 等等。写这个最 Pythonic 和优雅的方式是什么?
upd:使函数输出小端字符串准备打包。
【问题讨论】:
-
stackoverflow 的总体思路是你编写一些代码,如果它不起作用,你首先使用知名搜索引擎努力搜索可以复制的可能解决方案或适应您的需求,然后只有当您的代码无法正常工作时,您才能创建一个 stackoverflow 问题并粘贴一些最小且可执行的代码,并显示您遇到的问题。请注意该序列的第一部分:你编写一些代码。
-
对不起,我搞砸了字符串格式。当然应该是
0x1234而不是\x12\x34 -
不错的一个。让我们把这件事做好。所以你想要例如
convert_to_hcd(1234)返回字符串0x1234?你确定吗? -
是的,这正是我所需要的。我试图通过将整数作为字符串处理来解决它,但我认为这是一个坏主意,而且无论如何都不是 Pythonic。
-
好的。您是否尝试过编写任何 Python 代码?