python - 将数字转换为二进制字符串

标签 python binary hex

这是将 Python 数字转换为十六进制字符串的最佳方式吗?

number = 123456789
hex(number)[2:-1].decode('hex')

有时它不起作用,并在您执行 1234567890 时提示 Odd-length string。

澄清:

我将从整型转为十六进制。

另外,我需要它被转义。

即: 1234567890 -> '\x49\x96\x02\xd2' 不是 '499602D2'

此外,它需要能够接受任何 Python 整数。 IE。比 Int 更大的东西。

编辑:

这是迄今为止我从 Paolo 和 Devin 的帖子中拼凑出来的最佳解决方案。

def hexify(num):
    num = "%x" % num

    if len(num) % 2:
        num = '0'+num

    return num.decode('hex')

最佳答案

你可以使用 string formatting :

>>> number = 123456789
>>> hex = "%X" % number
>>> hex
'75BCD15'

关于python - 将数字转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/699285/

相关文章:

python - 在 pandas 数据框中获取组内项目索引的最有效方法

c - 使用霍夫曼码解码

language-agnostic - 为什么大多数语言不允许二进制数?

hex - 如何使用 Elixir 打包/解包十六进制字符串(先是高半字节)

python - 如何使用 python 查看目录中每个文件的第一行

Python PIL : Replace Out-of-Range Text with Ellipsis

python - 将 Celery Django 任务分散到 24 小时内

python - 模块命名空间中的类问题

c# - 将 SQL Server varBinary 数据转换为字符串 C#

C: 将接收到的 Winsock 数据包保存为十六进制文件