当前位置: 首页 > news >正文

Python数据类型转换实现方法

基本类型转换

python3与python2通用函数:

1

2

3

4

int('123456'10)# 转换为指定进制的整数

hex(123456)# 整数转换为16进制串,转换后类型为字符串

bin(123)# 整数转换为2进制串

oct(123)# 整数转换为8进制串

python2专用函数:

1

2

'abcd'.encode('hex')# 字符串转换为16进制串,对应字符的ascii码

'61626364'.decode('hex')# ascii码转换为对应的字符串

特别注意:python3比python2多了个字节的数据类型,python3字节专用函数:

1

2

3

4

5

6

# 字符串转字节

bytes('str',encoding='utf8')

'str'.encode(encoding='utf8')

# 字节转字符串

str(b'byte',encoding='utf8')

b'str'.decode(encoding='utf8')

python中的C语言数据类型

使用第三方库 numpy:

1

2

3

4

importnumpy as np

a=np.int32(0xffffffff)# 会报错,超范围了

b=np.uint32(0xffffffff)

printa,b

使用 ctypes 库:

1

2

3

4

fromctypesimport*

a=c_uint32(0xfffffff).value

b=c_int32(0xffffffff).value# 显示为 -1

printa,b

推荐使用ctypes,numpy在超过整数范围时不能强制类型转换

python中的struct库

在程序中,输入的多个字符可以被当作一个 WORD 或者 DWORD 甚至 QWORD 的类型进行运算,运算结果放到内存再逐字节取出来!针对这种情况,struct库可以帮我们把几个字符打包成一个整数,或者将一个整数解包成几个字符,还能定义大小端模式!简言之,就是能把所使用的数据转换成在内存中存储的形式

常用到的一些格式字符

b char 1 B uchar 1 h short 2 H ushort 2 i int 4 I uint 4 l long 4 L ulong 4 q longlong 8 Q ulonglong 8 f float 4 d double 8 < 小端模式;> 大端模式;默认小端模式

使用方法:

1

2

3

4

5

6

fromstructimport*

a=0x41424344

b=0x6162

c=0x66

printpack('<IHb',a,b,c)

printunpack('<IHb','DCBAbaf')[0]

python中的binascii库

在 python2 中有encode('hex')函数可以快速将字符串转换为对应 ascii 码的16进制数,在 python3 中只有借助binascii才能实现类似功能!

1

2

3

importbinascii

binascii.hexlify(str)# 字符串转16进制串

binascii.unhexlify(hex_str)# 16进制串转字符串

python中的libnum神器

这个库的强大之处在于:可以直接将任意进制整数转换为字符串 常用的一些函数:

1

2

3

4

5

6

# Encoding=UTF-8

fromlibnumimport*

s2n(str)# 字符串转整数

n2s(n)# 整数转字符串,任意进制数也能直接转,它会先把任意进制数转成16进制数

s2b(str)# 字符串转2进制位串

b2s(bin)# 2进制位串转字符串

到此这篇关于Python数据类型转换实现方法的文章就介绍到这了

http://www.cnnetsun.cn/news/2078743.html

相关文章:

  • 嵌入式系统最后防线:在无MMU的MCU上实现C语言内存安全的3种硬件协同方案(ARMv8-M TrustZone实测)
  • 从CAN总线到以太网:手把手拆解汽车‘五大域’控制器之间的‘聊天’协议
  • Skill生成能力测试
  • 算法训练营第十四天 | 18. 四数之和
  • 实时数字人领域迎来新突破,Soul App发布轻量化模型SoulX-FlashHead
  • IOU Tracker实战:在低算力边缘设备(如Jetson Nano)上部署车辆跟踪
  • AI拓客系统选型指南:从“生存刚需”到“增长引擎”,GEO技术成破局关键
  • SQL如何处理多级分类统计报表_窗口函数层级汇总技巧
  • 从LIDC-IDRI到可训练数据:Python实战放射组学肺结节良恶性分类的数据预处理全解
  • P2639 [USACO09OCT] Bessie‘s Weight Problem G
  • 聊聊土木工程转行都去干啥了!_土木转行
  • AI长期记忆系统架构解析:从向量检索到多模态一致性
  • Pearcleaner:macOS深度清理的工程化解决方案
  • 人工智能|大白话YOLOv2
  • 保姆级教程:用Node.js复现抖音直播WSS链接的signature生成(附完整可运行代码)
  • 新药研发避坑指南:如何用ADMET预测工具(如ADMETlab 2.0)提前筛掉“问题分子”?
  • Taste-Skill:为AI编码助手注入设计品味,提升前端代码审美与工程实践
  • 别再只盯着DSI/CSI了!聊聊MIPI DPI:那个让无缓存屏幕动起来的‘老派’接口
  • Mistral与NVIDIA新语言模型技术解析与部署实践
  • SQL触发器如何获取触发源应用名_利用APP_NAME函数追踪
  • 晶科科技:国产芯模“协同破局、祛魅前行”,AIDC迎重大机遇
  • 为什么92%的车载软件团队弃用Eclipse改用VSCode?——基于ISO 26262 ASIL-B项目实测的4项性能跃升数据报告
  • 告别串口助手:用Python+PyQt5自制STM32 IAP升级上位机(支持Ymodem协议)
  • 【国家级等保2.0三级强制要求】:C项目上线前必须通过的5层内存安全静态验证关卡(含CI/CD自动化脚本模板)
  • 图像描述生成:Inject与Merge架构对比与实践
  • Keras实战:从零构建YOLOv8目标检测模型
  • Proma开源项目解析:Python驱动的程序化营销自动化工具库
  • 别再只调API了!手把手教你用BERT+CRF从零搭建一个中文知识库问答系统(附完整代码)
  • 不止是framework.jar:手把手教你为Android Studio配置完整的AOSP编译环境(含services.jar等)
  • 抖音内容获取的革命:从手动保存到智能批量下载的技术演进