python中bytes转int的实例

python很多数据都是bytes格式的,经常需要转换成int或者short,笔者实际项目有需求,这里就做个笔记吧。

实例一:

bytes转short:(无符号类型)

import struct

barray = b'\x00\xfe\x4b\x00\x4b\x00'
count = len(barray)/2 
integers = struct.unpack('H'*int(count), barray)

注意,这里面的count的长度要是偶数 ,不然会报错误.

转成有符号的,只需要把H改成h即可.

实例二:

bytes转int:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import struct

barray = b'\x00\xfe\x4b\x00\x4b\x00\x22\x44'
count = len(barray)/4 
integers = struct.unpack('i'*int(count), barray)

注意,这里面的count的长度要是四的倍数 ,不然会报错误.

转成无符号的,只需要把i改成I即可.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python的ctypes模块来定义和使用结构体,使用ctypes.sizeof()函数可以获取结构体的大小。例如: import ctypes class MyStruct(ctypes.Structure): _fields_ = [ ('field1', ctypes.c_int), ('field2', ctypes.c_double), ('field3', ctypes.c_char * 10) ] print(ctypes.sizeof(MyStruct)) 输出结果为: 24 这表示MyStruct结构体的大小为24字节。 ### 回答2: 在Python,并没有直接支持结构体的概念,也没有类似于C语言的size函数来获取结构体的大小。Python的数据结构通常是通过类和对象来实现的,因此我们可以通过使用类的sys模块的getsizeof函数来获取对象的大小。 具体步骤如下: 1. 首先,导入sys模块,它是Python内置的一个用于访问系统变量和函数的模块。 2. 接下来,定义一个类,用于表示结构体。可以在类的内部定义各种变量来表示结构体的字段。 3. 在类外部,使用getsizeof函数来获取该类的对象的大小。该函数会返回以字节为单位的对象大小。 下面是一个示例代码: ```python import sys class Struct: def __init__(self, field1, field2, field3): self.field1 = field1 self.field2 = field2 self.field3 = field3 s = Struct(10, 20, 30) size = sys.getsizeof(s) print("结构体的大小为:", size, "字节") ``` 在这个示例,我们定义了一个名为Struct的类,它有三个字段。然后创建了一个Struct类的对象s,并使用getsizeof函数获取该对象的大小,并将结果打印出来。 需要注意的是,这里获取的大小不仅包括了结构体各个字段的实际占用空间,还包括了对象的相关信息和内存管理开销等。因此,实际使用时可能会有一些误差。 ### 回答3: 在Python,没有直接支持结构体大小的内建功能。结构体一般是在C或C++等编程语言使用的数据类型,用于存储多个不同类型的数据。 但是,在Python可以通过使用`ctypes`库来模拟结构体,并获取结构体的大小。`ctypes`库是Python提供的用于和C语言库进行交互的模块。 首先,需要导入`ctypes`库: ```python import ctypes ``` 然后,定义一个结构体类型,并使用`ctypes`模块的装饰器`ctypes.Structure`来声明: ```python class MyStructure(ctypes.Structure): _fields_ = [("field1", ctypes.c_int), ("field2", ctypes.c_float), ("field3", ctypes.c_char * 20)] ``` 在`_fields_`列表,我们定义了结构体的字段和它们的数据类型。 接下来,可以使用`ctypes.sizeof()`函数来获取结构体的大小: ```python size = ctypes.sizeof(MyStructure) print(f"The size of MyStructure is {size} bytes.") ``` 最后,将`MyStructure`的实例化对象传递给`ctypes.sizeof()`函数来计算结构体的大小。 需要注意的是,因为Python是一种解释性语言,`ctypes`模块的性能较差。因此,在大多数情况下,使用原生的Python数据结构(如字典或列表)可能更加高效。如果需要与其他语言进行交互,可以考虑使用更具性能的库,如`numpy`或`pandas`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值