博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中的数据类型转换
阅读量:7174 次
发布时间:2019-06-29

本文共 1457 字,大约阅读时间需要 4 分钟。

基本类型转换

python3与python2通用函数:

int('123456',10) # 转换为指定进制的整数hex(123456) # 整数转换为16进制串,转换后类型为字符串bin(123) # 整数转换为2进制串oct(123) # 整数转换为8进制串

python2专用函数:

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

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

# 字符串转字节bytes('str',encoding='utf8')'str'.encode(encoding='utf8')# 字节转字符串str(b'byte',encoding='utf8')b'str'.decode(encoding='utf8')

python中的C语言数据类型

使用第三方库 numpy:

import numpy as npa = np.int32(0xffffffff)  # 会报错,超范围了b = np.uint32(0xffffffff)print a,b

使用 ctypes 库:

from ctypes import *a = c_uint32(0xfffffff).valueb = c_int32(0xffffffff).value # 显示为 -1print a,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
< 小端模式;> 大端模式;默认小端模式

使用方法:

from struct import *a = 0x41424344b = 0x6162c = 0x66print pack('

python中的binascii库

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

import binasciibinascii.hexlify(str) # 字符串转16进制串binascii.unhexlify(hex_str) # 16进制串转字符串

python中的libnum神器

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

常用的一些函数:

# Encoding=UTF-8from libnum import *s2n(str) # 字符串转整数n2s(n) # 整数转字符串,任意进制数也能直接转,它会先把任意进制数转成16进制数s2b(str) # 字符串转2进制位串b2s(bin) # 2进制位串转字符串

END

转载地址:http://agbzm.baihongyu.com/

你可能感兴趣的文章
feof()的实现
查看>>
VS中Debug与Release、_WIN32与_WIN64的区别
查看>>
真正通用的SQL分页存储过程
查看>>
coredump的裁剪方法
查看>>
精选30个优秀的CSS技术和实例
查看>>
洛谷P5206 数树
查看>>
20160509-hibernate--继承映射
查看>>
删除字符串最后一个字符的几种方法
查看>>
extjs apply,applyif,override,extend 的区别
查看>>
mycat 自增id笔记
查看>>
.net开源CMS系统使用教程之:如何用We7 CMS建设全新网站
查看>>
查看表扫描次数,并对比索引对表查询的作用
查看>>
Java多线程系列目录(共43篇)
查看>>
解决MySQL登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor)问题
查看>>
未排序数组中累加和为给定值的最长子数组长度
查看>>
在linux中安装memcache服务器
查看>>
python之if测试
查看>>
电脑操作的“奇技淫巧”
查看>>
遍历DOM树,each()遍历
查看>>
手势UIGestureRecognizer
查看>>