物联网AI MicroPython学习之语法 ustruct - 原始数据类型

学物联网,来万物简单IoT物联网!!在这里插入图片描述

ustruct 介绍

ustruct提供打包和解压原始数据类型的功能。
默认情况下,C类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规则)。参考下表,格式字符串的第一个字符用于指示打包数据的字节顺序,大小和对齐方式:

字符自己额顺序大小对其方式
@nativenativenative
=nativestandardnone
<little-endianstandardnone
>big-endianstandardnone
!network (= big-endian)standardnone

格式化字符表

格式C语言的类型Python对应的类型类型所占空间大小
xpad byteno value
ccharbytes of length 11
bsigned charinteger1
Bunsigned charinteger1
?_Boolbool1
hshortinteger2
Hunsigned shortinteger2
iintinteger4
Iunsigned intinteger4
llonginteger4
Lunsigned longinteger4
qlong longinteger8
Qunsigned long longinteger8
nssize_tinteger
Nsize_tinteger
ffloatfloat4
ddoublefloat8
schar[]bytes
pchar[]bytes
Pvoid *integer

接口说明

calcsize - 返回存放 fmt 需要的字节数

  • 函数原型:ustruct.calcsize(fmt)
  • 参数说明:
参数类型必选参数?说明
fmt格式字符详情参考上文格化式字符表
  • 返回值
    返回存放fmt格式的对象需要的字节数。
  • 示例:
>>> ustruct.calcsize('i') 4 
>>> ustruct.calcsize('d') 8

pack - 按照格式字符串fmt压缩参数

  • 函数原型:ustruct.pack(fmt, v1, v2, …)
  • 参数说明:
参数类型必选参数?说明
fmtstring压缩参数时所采用的格式字串,详情见上文格化式字符表
v1-要压缩的对象v1
v2-要压缩的对象v2
-要压缩的其它对象
  • 返回值
    参数对象经过编码后的字节对象。
  • 示例:
>>> ustruct.pack('iiiii', 1, 2, 3, 4, 5) # 打包5个整数 
b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x 00\x00'

unpack - 根据格式化字符串fmt对数据进行解压

  • 函数原型:unstrcut.unpack(fmt, data)
  • 参数说明:
参数类型必选参数?说明
fmtstring解压缩数据时所采用的格式字串,详情见上文格化式字符表
databytearray要解压缩的对象v1
  • 返回值
    数据解压后的存放的元组。
  • 示例:
>>> ustruct.unpack('iiiii', b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x 00\x04\x00\x00\x00\x05\x00\x00\x00')# 对压缩过的整数按照整数的格式进行解压缩 、
(1, 2, 3, 4, 5)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值