字节、进制、字符串格式化

文章目录

  • 1.字节
  • 2.不同的进制之间转换数值
  • 3.bytes()用法
  • 4.struct.unpack()用法
  • 5.字符串格式化{:03.2f}

1.字节

字节(Byte)是计算机存储和处理数据的基本单位之一。一个字节可以存储8个二进制位(bit),每个二进制位可以表示0或1。

在计算机中,字节通常是以二进制形式存储和传输的。例如,一个8位的二进制数00110110就是一个字节。字节的二进制表示范围是从00000000到11111111,对应着十进制的0到255。

字节也可以表示为十六进制形式,每个字节可以用两个十六进制数字表示。例如,字节00110110用十六进制表示为0x36。

二进制(Binary):
二进制是一种基于2的数字系统,只使用0和1来表示数值。

八进制(Octal):
八进制是一种基于8的数字系统,使用0到7共八个数字来表示数值。

十进制(Decimal):
十进制是我们通常使用的数字系统,使用0到9共十个数字来表示数值。

十六进制(Hexadecimal):
十六进制是一种基于16的数字系统,使用0到9的十个数字和A-F(或a-f)共16个字符来表示数值。

2.不同的进制之间转换数值

**int(i, 16)**是一个将十六进制数表示转换为整数的方法。具体来说,它将一个十六进制表示的字符串i转换为相应的整数。

1).处理二进制数据:
假设你有一个十六进制的二进制编码字符串,比如0b1101,你想将它转换为整数。

binary_string = "0b1101"
decimal_number = int(binary_string, 2)  # 2表示二进制
print(decimal_number)  # 输出: 13

在这个例子中,int(binary_string, 2)将binary_string转换为整数13,因为0b1101在二进制中表示的数值是13。

2).编码处理:
在编码过程中,你可能会遇到需要将十六进制表示的字符转换为它们对应的ASCII字符。

hex_string = "41"
decimal_number = int(hex_string, 16)
print(chr(decimal_number))  # 输出: A

在这个例子中,int(hex_string, 16)将hex_string转换为整数65,因为41在十六进制中表示的数值是65,而65是ASCII码表中的字符’A’。

3).进制转换计算:
在进行各种计算时,你可能需要将数值从一种进制转换为另一种进制。例如,将十六进制数转换为十进制数。

hex_number = "1A"
decimal_number = int(hex_number, 16)
print(decimal_number)  # 输出: 26

在这个例子中,int(hex_number, 16)将hex_number转换为整数26,因为1A在十六进制中表示的数值是26。

3.bytes()用法

bytes()函数用于创建一个字节对象(bytes object)。字节对象是一种不可变的序列类型,包含一系列字节。每个字节是一个表示8位二进制数的整数,范围从0到255。

1).通过字节序列创建字节对象:
bytes(iterable):从可迭代对象iterable创建字节对象,例如列表或元组。
bytes(string, encoding):从字符串string和指定的编码encoding创建字节对象。
以下是使用bytes()函数的一些示例:

byte_string = bytes([10, 20, 30])
print(byte_string)  # 输出: b'\n\x14\x1e'

2).通过字符串和编码创建字节对象:

byte_string = bytes("Hello, World!", "utf-8")
print(byte_string)  # 输出: b'Hello, World!'

3). 从文件读取字节数据并创建字节对象:

with open("example.txt", "rb") as file:byte_string = bytes(file.read())
print(byte_string)  # 输出文件内容的字节表示

需要注意的是,字节对象是不可变的。如果需要对字节数据进行修改,可以创建一个新的字节对象进行操作。字节对象在处理二进制数据和与底层系统进行交互时非常有用,例如网络通信、图像处理等场景。

4.struct.unpack()用法

struct.unpack 是 Python 标准库中的一个函数,用于将二进制数据解析成 Python 中的数据类型。它通常与 struct.pack 一起使用,struct.pack 用于将 Python 数据类型打包成二进制数据。

import struct# 定义一个二进制数据
binary_data = b'\x01\x02\x03\x04'# 使用 struct.unpack 解析二进制数据
unpacked_data = struct.unpack('BBBB', binary_data)print(unpacked_data)  # 输出: (1, 2, 3, 4)

在上面的例子中,‘BBBB’ 是格式字符串,它指定了如何解析二进制数据。每个字符代表一个数据类型,如下:

‘B’ 代表无符号字符 (unsigned char),范围是 0 到 255。
‘h’ 代表有符号短整数 (short),范围是 -32768 到 32767。
‘i’ 代表有符号整数 (int),范围是 -2147483648 到 2147483647。
等等。具体的格式字符可以根据你的需要选择,详情可以查阅 Python 官方文档。

5.字符串格式化{:03.2f}

{:03.2f} 是 Python 字符串格式化中的一种格式,用于格式化浮点数。

{}: 这是一个占位符,用于将后面的变量插入到字符串中。

:: 冒号后面用于指定格式化的方式。

03.2f: 这部分包含了格式化说明符,具体含义如下:

0: 表示在结果中填充前导零(如果需要的话)。
3: 表示最小字段宽度为 3,即最少占用 3 个字符的位置,如果当前数字不足 3 位,则在前面填充零。
.2: 表示保留小数点后 2 位。
f: 表示浮点数类型。
因此,{:03.2f} 表示将一个浮点数格式化为字符串,至少占用 3 个字符的位置,保留小数点后 2 位,并在前面填充零(如果需要的话)。

例如,如果浮点数是 12.3456,那么格式化后的结果将是 012.35,其中小数点后两位四舍五入,且使用前导零填充。

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

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

相关文章

【Android】使用Handler实现一个定时器

需求 实现一个定时任务,每隔一秒执行一次 实现 使用Handler实现 private Handler topUIHandler;private void initTopUiHandler() {topUIHandler new Handler(getMainLooper()) {Overridepublic void handleMessage(Message msg) {//执行这个定时任务updateTop…

软件项目管理期末复习题8-16章

第八章软件项目质量计划 一、填空题 1、(审计)是对过程或产品的一次独立质量评估。 2、质量成本包括预防成本和(缺陷成本)。 3、(软件质量)是软件满足明确说明或者隐含的需求的程度。 5、McCall质量模…

【华为】IPSec VPN手动配置

【华为】IPSec VPN手动配置 拓扑配置ISP - 2AR1NAT - Easy IPIPSec VPN AR3NATIPsec VPN PC检验 配置文档AR1AR2 拓扑 配置 配置步骤 1、配置IP地址,ISP 路由器用 Lo0 模拟互联网 2、漳州和福州两个出口路由器配置默认路由指向ISP路由器 3、进行 IPsec VPN配置&…

数据的输入和输出

早期的总线系统 为了解决通信的问题、主板上铺设了一条公共线路、各个设备都连接到这条线路上、不管谁要和谁通信、都能使用它来传输、这条线路就是总线。 总线上有CPU、内存、鼠标、键盘、硬盘、网卡、声卡、显卡等… 说是一条总线、实际上是包含了传输数据的数据总线、传输…

场景文本检测识别学习 day09(Swin Transformer论文精读)

Swin Transformer Swin Transformer 提出ViT具有两个缺点: 1. 没有多尺度特征 ,不能生成多尺度的特征图传给FPN (检测) \ U-Net (分割),从而对于不同大小的物体都能进行良好感知,即只有16 * 16的patch尺寸 2. 全局计算自注意力浪…

智密腾讯云直播组建--准备腾讯云环境

在准备接入之前,开发者需要自行准备腾讯云方面以及uniapp方面所需的资料,申请对应的服务与应用数据,本篇将教您如何从0开始完成腾讯云环境准备全部步骤所需资料 本服务依赖于腾讯云云服务,从而为直播间提供业务支持。通过腾讯多个…

js 关于数组排序的方法

在JavaScript中,数组排序主要有两种主要方法:Array.prototype.sort() 和自定义排序函数。 Array.prototype.sort() sort() 方法按照字符串Unicode码点顺序对数组元素进行排序,并返回数组。对于非字符串类型的数组元素,sort() 方…

springcloud第4季 springcloud-alibaba之sentinel2

一 sentinel实操实例 1.1 sentinel作用 sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障服务的稳定性。

使用Java动态创建Flowable会签模型

theme: channing-cyan 在企业级应用开发中,工作流管理系统如Flowable扮演着至关重要的角色,特别是在自动化业务流程、任务分配和审批流程设计上。动态创建流程模型,尤其是会签(Parallel Gateway)模型,是提…

大模型LLM:最清晰解读提示工程(Prompt Engineering)

提示工程(Prompt Engineering),也称为上下文提示,是一种通过不更新模型的权重/参数来引导LLM行为朝着特定结果的方法。这是与AI有效交流所需结果的过程。提示工程可以用于各种任务,从回答问题到算术推理乃至各种应用领…

【触摸案例-手势解锁案例-按钮高亮 Objective-C语言】

一、我们来说这个self.btns,这个问题啊,为什么不用_btns, 1.我们说,在懒加载里边儿,经常是写下划线啊,_btns,为什么不写,首先啊,这个layoutSubviews:我们第一次,肯定会去执行这个layoutSubviews: 然后呢,去懒加载这个数组, 然后呢,接下来啊,走这一句话, 第一次…

邮件系统国产化,保障企业信息安全的重要举措

随着信息技术日益发展和成熟,企业信息化建设深入推进,企业信息化管理能力大幅提升,其中邮件系统在企业信息化建设中扮演着至关重要的角色。然而,长期以来,我国企业在邮件系统方面主要依赖于国外的产品,这不…

win11安装SQL Server 2012 企业版

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、硬件要求二、软件安装参考&#xff1…

C语言---操作符详解

1.操作符的分类 • 算术操作符: 、- 、* 、/ 、% • 移位操作符: > • 位操作符: & | ^ • 赋值操作符: 、 、 - 、 * 、 / 、% 、> 、& 、| 、^ • 单⽬操作符: !、、--、&、*、、-、~ 、sizeof、(类型) • 关系操…

在windows下使用VS Code、CMake、Make进行代码编译

软件环境 Windows11VS CodeNoneCMake3.26.4-windows-x86_64MinGWNone 电脑系统配置 安装MinGW将MinGW安装文件夹中bin文件夹下的mingw32-make.exe复制并重命名为make.exe在文件夹中添加系统路径,具体位置为 系统->系统信息->高级系统设置->高级->环境…

Linux运维:centos环境变量

前言 在 Linux 运维工作中,管理环境变量是至关重要的一项任务。在 CentOS 环境下,正确配置环境变量可以使系统更加高效和易于管理。 本文将重点讨论 CentOS 环境下的环境变量设置,并就python的环境变量配置方案进行讲解(不包含Ano…

生成式 AI 的发展方向,应当是 Chat 还是 Agent?

生成式AI的发展方向既可以是Chat(聊天)也可以是Agent(智能代理),这两者并不是互斥的,而是可以相互补充和融合。 Chat(聊天)方向: 聊天机器人在过去几年中取得了显著的进…

cs客户端测试注意点

客户端安装卸载测试 安装测试 1、GUI测试:安装过程中所有的界面显示,提示信息等是否正确 2、兼容性测试:在不同的操作系统,不同配置的主机上能否正常安装 3、安装路径测试(软件不能自动安装的情况下): 软件默认路…

YOLOv9中模块总结补充|SPPELAN

专栏相关代码:目前售价售价69.9,改进点80 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 1. SPPELAN SPPELAN是YOLOv9作者在SPPF的基础上创新的模块(增加了一次…

基于STM32F401RET6智能锁项目(环境搭建)

工程搭建 MDK,固件库,芯片包下载 下载keil5,stm32f4xx的固件库以及stm32f4的芯片包 keil官网:https://www2.keil.com/mdk5/ stm32中国官网:https://www.stmcu.com.cn/ 创建工程 1、新建一个工程文件夹,…