python - 将 Python int 转换为大端字节串

标签 python

我有一个非负整数,我想有效地将​​它转换为包含相同数据的大端字符串。例如,int 1245427(即 0x1300F3)应生成一个长度为 3 的字符串,其中包含三个字节值分别为 0x13、0x00 和 0xf3 的字符。

我的整数是 35 (base-10) 位数。

我该怎么做?

最佳答案

在 Python 3.2+ 中,您可以使用 int.to_bytes :

如果你不想指定尺寸

>>> n = 1245427
>>> n.to_bytes((n.bit_length() + 7) // 8, 'big') or b'\0'
b'\x13\x00\xf3'

如果您不介意指定尺寸

>>> (1245427).to_bytes(3, byteorder='big')
b'\x13\x00\xf3'

关于python - 将 Python int 转换为大端字节串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/846038/

相关文章:

python - Python 2.7 的 MSI 安装的默认安装目录是什么?

python - 哪个是最pythonic : installing python modules via a package manager ( macports, apt)或通过pip/easy_install/setuptools

python - `sock.recv()` 当连接在非阻塞套接字上死亡时返回空字符串

python - 执行多次运行时如何使用 Keras 保留纪元号?

python - 使用 argv 将参数传递给 python 中的函数

python - 无法加载 ipython magic 扩展 Sparkmagic : module not found

python - 有没有办法在 Python 的 re.sub() 中的替换字符串中使用正则表达式?

python - 大量按钮和智能检查被检查

NLTK word_tokenizer 的 Python 多重处理 - 函数永远不会完成

python - 无法加载动态库 'libnvinfer.so.6'