物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

news2024/12/27 13:37:38

学物联网,来万物简单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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1193632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Vite创建Vue3项目 配置路由+路径(包教包会)

使用Vite创建Vue3项目 配置路由路径 一、创建项目&#xff1a;二、配置路由1. vue3vitets路由配置2. vue3vitejs路由配置 三、配置路径 一、创建项目&#xff1a; 创建一个文件夹在文件夹上的 地址栏 或者是 winR 打开cmd命令窗口。 输入命令 npm create vitelatest 这里我们…

飞控硬件介绍及其主要传感器特性解析

飞行控制器是无人机的关键组件之一&#xff0c;它主要由主控单片机、IMU传感器、电源和输出IO等部分构成。这些硬件和传感器的特性对于无人机的二次开发至关重要&#xff0c;其性能和质量直接关系到无人机的稳定性、飞行性能和功能扩展能力。 本文将带领新手开发者深入了解飞行…

更安全的ssh协议与Gui图形化界面使用

目录 前言&#xff1a; 一.Gui图形化界面的使用 二.ssh协议 SSH的主要作用包括&#xff1a; 相比其他网络协议&#xff0c;SSH的优势包括&#xff1a; 三.idea集成Git 前言&#xff1a; 上一篇讲解了git的命令用法以及https协议&#xff0c;但是这个协议放在做团队项目的…

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料&#xff1a; STM32F103C6T6最小系统板 STM32CUBEMX&#xff08;HAL库软件&#xff09; MDK5 串口调试助手 二、所学内容&#xff1a; 初步学习如何使用STM32的CAN通讯功能&#xff0c;在本章节主要达到板内CAN通讯的效果&#xff0c;即32发送CAN信息再在CAN接收…

初识Linux:目录路径

目录 提示&#xff1a;以下指令均在Xshell 7 中进行 一、基本指令&#xff1a; 二、文件 文件内容文件属性 三、ls 指令拓展 1、 ls -l &#xff1a; 2、ls -la&#xff1a; 3、ls [目录名] &#xff1a; 4、ls -ld [目录名]&#xff1a; 四、Linux中的文件和…

windows下QZipReader和QZipWriter解压缩zip格式文件(只针对纯文件,递归目前暂不处理)

# 运行效果 ui设计文件 采用了网格布局,组件跟随窗口最大化最小化 # .pro项目文件 这段代码是一个项目文件(.pro文件)中的内容,用于配置一个Qt项目的构建和部署规则。它包含了一些指令和设置,用于指定项目中需要编译的源代码文件、头文件、UI表单文件以及项目所依赖的Qt…

点亮一个灯

.text .global _start _start: RCC时钟使能 GPIOE RCC_MP_AHB$ENSETR[4]->1 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) ORR R1,R1,#(0x1<<5) STR R1,[R0]设置PE10为输出模式 GPIOE_MODER[21:20]->01 先清0 LDR R0,0x50006000 LDR R1,[R0] BI…

偶数科技携Skylab实时湖仓数据平台亮相2023全国中小企业数字化转型大会

2023全国中小企业数字化转型大会于10月28日至30日在安徽省合肥市举行&#xff0c;本次大会以“数实融合 赋能万企”为主题&#xff0c;由工业和信息化部、安徽省人民政府主办。会议期间&#xff0c;偶数科技等典型企业的数字化转型新技术、新产品、新应用、新模式集聚亮相&…

【微软技术栈】C#.NET 正则表达式源生成器

本文内容 已编译的正则表达式源生成在源生成的文件中何时使用 正则表达式 (regex) 是一个字符串&#xff0c;它使开发人员能够表达要搜索的模式&#xff0c;使其成为搜索文本和提取结果作为已搜索字符串子集的一种很常见的方法。 在 .NET 中&#xff0c;System.Text.RegularE…

Vuex使用一文搞懂

什么是Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 是什么&#xff1f; | Vuex (vuejs.org) 图片来源&#xff0c;vuex官方文档 vuex安装 …

<蓝桥杯软件赛>零基础备赛20周--第5周--杂题-2

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

无线城市WiFi解决方案【完整Word】

wx供重浩&#xff1a;创享日记 获取完整无水印高清Word版 文章目录 第1章 项目背景1.1“无线城市”的定义1.2 国内外“无线城市”发展概况1.3 典型案例分析1.4 建设无线城市的必要性1.5 无线城市能为政府带来的价值 第2章 项目需求分析2.1 无线城市的现状分析2.2 无线城市的总体…

HackTheBox-Starting Point--Tier 2---Base

文章目录 一 题目二 过程记录2.1 打点2.2 权限获取2.3 横向移动2.4 权限提升 一 题目 Tags Web、Vulnerability Assessment、Custom Applications、Source Code Analysis、Authentication、Apache、PHP、Reconnaissance、Web Site Structure Discovery、SUDO Exploitation、Au…

GPIO实验:ARM汇编代码实现LED灯亮灭控制

GPIO实验&#xff1a;ARM汇编代码实现LED灯亮灭控制 一、 汇编工程模板Makefile分析 NAMEasm-led #指定编译的源文件名字 CROSS_COMPILE arm-linux-gnueabihf- #指定交叉编译工具链前缀CC $(CROSS_COMPILE)gcc #指定gcc名字LD $(CROSS_COMPILE)ld #指定链接器名字…

计算机网络第一章(计算机网络开篇)

目录 一.什么是计算机网络1.0 何为计算机网络1.1 什么是Internet?1.2 互联网与互连网1.3 互联网基础结构发展的三个阶段 二.什么是网络协议2.1 协议的三要素2.2 internet协议标准 三. 互联网的组成3.1 边缘部分3.11 端系统之间的通信 3.2 核心部分3.21 数据交换技术 四. 计算机…

2023双十一:实体门店闯入,第二战场全面开战

“闺女&#xff0c;吃饺子了吗&#xff1f;”11月8日&#xff0c;立冬&#xff0c;忙碌一天的陈曦回家路上接到母亲电话&#xff0c;才想起来家里冷冻水饺没了&#xff0c;又不想再去超市&#xff0c;直接打开美团买菜买了两袋&#xff0c;回家就煮了吃。当然&#xff0c;最终她…

【GIT】Git中的Gui介绍,使用Git中的ssh协议介绍,使用使用idea集成Git

目录 一&#xff0c;Git中的Gui介绍&#xff0c;使用 二&#xff0c;Git中的ssh介绍&#xff0c;使用 三&#xff0c;使用idea集成Git 一&#xff0c;Git中的Gui介绍&#xff0c;使用 1.1什么是Gui&#xff1f; 图形化管理工具是一种通过可视化界面来操作计算机系统或应用程…

管理员模式运行cmd或则bat文件的时候,出现路径错误的问题

最近在使用Comfyui, 不清楚啥原因&#xff0c;有时候Git无法访问&#xff0c;有时候文件夹无法访问的。就想把它的运行bat命令直接用 管理员模式运行&#xff0c;给到最高的权限&#xff0c;试试。但就这么简单的问题&#xff0c;搜了半天&#xff0c;都是一大堆不靠谱的教程&a…

统信UOS Linux操作系统下怎么删除某个程序在开始菜单或桌面的快捷方式

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 引言 统信操作系统的开始菜单包罗万象&#xff0c;将所有应用的快捷方式都放在了开始菜单内。 虽然提供了分类展示的能力&#xff0c;但无论是分类方式还是未分类方式&#xff0c;都不能像windows一样将这…

《剪映短视频剪辑从入门到精通》:最好别跟我说你精通剪映短视频剪辑

《剪映短视频剪辑从入门到精通》&#xff1a;最好别跟我说你精通剪映短视频剪辑 毫无疑问&#xff0c;如今短视频已经彻底冲入了所有大众的视野&#xff0c;已经成为了我们生活中不可或缺的一部分。本文将从一个全新的视角&#xff0c;重新带领大家学习剪映短视频剪辑&#xff…