Python中Byte字符串转换为Integer的多种实现方案

听雨眠
听雨眠
发布时间:2026-10-14| 5人浏览过
原创

本文详细解析Python中将Byte字符串转换为Integer的多种方法。涵盖使用struct模块、Python 3.2+内置的from_bytes方法、十六进制转换及array模块等技巧,并对比大端与小端字节序的处理差异,提供自定义函数实现方案,帮助开发者根据Python版本和需求选择最优解。

本内容参考自Stack Overflow中关于将字节字符串转换为整数的讨论。

核心需求是将形如'y\xcc\xa6\xbb'的字节字符串转换为对应的整数值。

第一种方法是通过导入struct模块来实现转换。


import struct
struct.unpack("<L", "y\xcc\xa6\xbb")[0]

第二种方法适用于Python 3.2及以上版本,利用内置功能处理。

当字节串采用大端法(Big-Endian)存储时,代码实现如下。


int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')

若字节串采用小端法(Little-Endian)存储,则需调整参数。


int.from_bytes(b'y\xcc\xa6\xbb', byteorder='little')

第三种方法是通过十六进制转换来实现字节到整数的映射。

针对大端法,具体的十六进制转换代码示例如下。


s = 'y\xcc\xa6\xbb'
num = int(s.encode('hex'), 16)

针对小端法,相应的十六进制转换代码示例如下。


int(''.join(reversed(s)).encode('hex'), 16)

第四种方法是借助Python的array模块进行转换。


import array
integerValue = array.array("I", 'y\xcc\xa6\xbb')[0]

其中参数'I'用于指定字节序(大端或小端),使用此方法时需注意当前Python版本的兼容性。

第五种方法是手动编写函数来实现字节到整数的转换逻辑。

例如,可以使用生成器表达式结合位移操作来实现。


sum(ord(c) << (i * 8) for i, c in enumerate('y\xcc\xa6\xbb'[::-1]))

另一种自定义函数实现方式如下所示。


def bytes2int( tb, order='big'):
    if order == 'big': seq=[0,1,2,3]
    elif order == 'little': seq=[3,2,1,0]
    i = 0
    for j in seq: i = (i<<8)+tb[j]
    return i

注:CSDN的Markdown编辑器存在排版问题,在页面底部易出现换行错乱和跳字符现象。

补充内容:Python中Int与Byte的双向转换方法。


data_byte1 = int(1324).to_bytes(length=2, byteorder='big', signed=True)
#int(参数):参数代表要被转换的数字
#length=2:代表要转换成几个字节
#byteorder='big'代表高位在前,相反little

data_byte2 = int().from_bytes(data_byte1, byteorder='big', signed=True)
print(data_byte1) print(data_byte2)

以上为个人总结的经验,旨在提供参考,欢迎支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。