python struct模块 处理字节流

首先看一下,struct 的字节顺序格式。
在这里插入图片描述
其次是struct的格式对照表。
在这里插入图片描述
下面是案例:
单项数据编解码

>>>struct.pack('i',379978)
b'J\xcc\x05\x00'
>>>struct.pack('>i',379978)
b'\x00\x05\xccJ'

解析:

>>>struct.unpack('i',b'J\xcc\x05\x00')
(379978,)
>>>struct.unpack('>i',b'\x00\x05\xccJ')
(379978,)

多项数据编解码

>>>struct.pack('>hiI',9358,379978,1023568)
b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP'

>>>struct.pack('>4shiI',b'jhon',9358,379978,1023568)
b'jhon$\x8e\x00\x05\xccJ\x00\x0f\x9eP'

解析:

>>>struct.unpack('>hiI',b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP')
(9358, 379978, 1023568)

>>>struct.unpack('>4shiI',b'jhon$\x8e\x00\x05\xccJ\x00\x0f\x9eP')
(b'jhon', 9358, 379978, 1023568)

字节流转十六进制显示:

>>>b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP'.hex()
'248e0005cc4a000f9e50'

十六进制转字节流

>>>bytes.fromhex('248e0005cc4a000f9e50')
b'$\x8e\x00\x05\xccJ\x00\x0f\x9eP'

十进制数,根据转换成特定字节个数的十六进制。例如字节数是4.

>>>hex(536)[2:].zfill(8)
'00000218'

十六进制转十进制

>>>int('00000218',16)
536

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5.组合与继承

1.面向对象 在C中,面向对象(Object-Oriented)是一种程序设计范式,它使用“对象”来设计应用程序和软件。面向对象编程(OOP)的核心概念包括类(Class)、对象(Object&#x…

23.leetcode---从前序与中序中遍历二叉树(Java版)

题目链接: https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/submissions/518810727/ 代码: 测试:

建设数字化工厂系统需要哪些核心技术

随着工业4.0时代的来临,数字化工厂系统已成为制造业转型升级的关键所在。数字化工厂系统通过集成各种先进技术,实现生产过程的智能化、自动化和高效化,进而提升企业的竞争力。那么建设这样一个系统究竟需要哪些核心技术呢? 一、工…

如何创建网址静态码?二维码扫码跳转网址的方法

现在很多的网址链接需要转换成二维码之后来使用,比如印刷包装、宣传单、公众号等方面应用,用户可以通过扫码跳转到对应链接的页面,查看页面内容。那么想要将链接转换二维码,并且二维码长期有效,可以使用生成静态码的方…

CSS文本属性与字体属性

目录 文本属性 文本颜色 文本对齐 修饰文本 文本缩进 行高 字体属性 字体系列 字体大小 字体粗细 字体样式 字体/文本综合属性写法 Chrome调试工具的使用 文本属性 文本颜色 在CSS中使用color 属性用于定义文本的颜色,使用background-color设置一个盒…

attempt to compare nil with number -- 黑马点评出现问题

问题情况 : 主要问题 : 调用lua执行redis时,有一个值会接受nil(因为redis中没有该数据)或者数值,当该值为nil时执行报错,因为会用到将该值与其他数字比较,故报错attempt to compare nil with number 当然…

Linux 底软开发——对CAN的详细操作(周期发送,异常检测,过滤报文)

Linux底软开发—对CAN发送接收详细操作 文章目录 Linux底软开发—对CAN发送接收详细操作1.保证多条CAN数据发送的周期性2.解析CAN报文数据3.CAN总线异常机制应对4.对CAN报文进行过滤操作5.完整的接收报文代码(过滤,心跳检测,解析)…

大语言模型Ollama

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Ollama简介 Ollama是一个开源的大语言模型平台,它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama提供了丰富的功能和特性,使得用户可以…

eCharts 折线图 一段是实线,一段是虚线的实现效果

在lineStyle里写了不生效的话,可以尝试数据拼接 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224,218 ,,,],type: line},{data: [,,, 218, 135, 147, 260],type: line,lineStyl…

Git:使用conda命令切换虚拟环境

1. 问题 在win10电脑的Git中,无法使用conda list命令,报错(bash:conda:command not found)。也无法使用conda activate base命令激活虚拟环境,报错(bash:conda&#xff…

【面试必会】线程池创建方式详解

最近面试问道了线程池的创建方式,这里出一篇文章记录下这一知识点! 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的ThreadFactory创建…

报名照片10k怎么处理?教你几个方法

现在在每年的事业单位考公的时候,大家都会在网上报名提交个人信息,其中有一项就是需要上传我们的考试证件照,平台通常会要求照片大小为10kb以下,那么如何将过大的图片压缩到10kb呢?本文将介绍如何处理这一问题,让您轻…

STM32 HAL库F103系列之ADC实验(一)

ADC工作原理: 1、输入通道: 2、转换序列: A/D转换被组织为两组:规则组(常规转换组)和注入组(注入转换组) 规则组最多可以有16个转换,注入组最多有4个转换 规则组和注入…

redis7安装与配置

一、下载 通过 redis官网 或者 redis中文网 下载。 以下是 redis 相关文档资料链接: redis源码地址 redis在线测试 redis命令参考 redis中文文档 历史发布版本的源码地址 二、版本命名规则 Redis从发布到现在,已经有十余年的时光了,…

修改npm源--多种方式

2024年,1月22日 npm.taobao.org 域名证书已到期下线。 重置官方源 npm config set registry https://registry.npmjs.org/ 淘宝源,使用最新版,旧版停止了 npm config set registry https://registry.npmmirror.com 查看当前镜像源 npm …

跨越未知,拥抱挑战——新征程

在浩瀚的IT领域里,每一位开发工程师都如同一位探险家,不断地探索、挑战和成长。作为一名新入职的Java开发工程师,我面临着全新的技术栈和业务领域,这是一次跨越未知的征程,也是一次自我提升的机会。 新入职 初入公司…

基于Springboot的网课管理系统

基于SpringbootVue的网课管理系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 课程表 论坛交流 学校公告 后端 学生管理 教师管理 班级管理 课程分类管理…

【AI】如何让局域网PC能够访问langchain框架的AI服务

【背景】 在单位内部成功运行了langchain服务,但是发现本地可以用默认8000端口访问,但是局域网内其它机器却无法访问服务页面。 【分析】 首先查看项目文件夹中的server.py。由于这个server.py的存在,我一开始以为langchain整套框架的服务…

丙级资质升级乙级实操:河南灌溉排涝项目所需材料清单

丙级资质升级乙级实操:河南灌溉排涝项目所需材料清单 在河南灌溉排涝项目中,从丙级资质升级到乙级资质是一个重要且复杂的过程。为了成功完成这一过程,需要准备一系列详尽且符合规定的材料。以下是针对此实操所需的关键材料清单:…