python-关于字节类型的转换
1. bytes(source)
--source为字符串时,则按照指定的 encoding 将字符串转换为字节序列bytes('123asd', encoding='utf-8') # 输出为:b'123asd'bytes('我', encoding='utf-8') # 输出为:b'\xe6\x88\x91'
--source为数字n(可以写为任意进制)时,则表示初始化n个字节的bytes序列,bytes(5) # 输出为:b'\x00\x00\x00\x00\x00'
--source为可迭代类型,则元素必须为[0 ,255] 中的整数bytes([1, 2, 3, 4]) # 输出为:b'\x01\x02\x03\x04'
同样是bytes类型的数据,为什么有的显示为b’123’这样子的,有的显示为b’\x00\x00\x00\x00\x00’?
因为utf-8和ASCII(包含数字0-9,英文Aa-zZ,以及一些符号)是兼容的,所以只是显示为b’123’,实际字节类型的存储形式都是二进制
2. bytes().hex()和bytes.fromhex()
--bytes(source).hex()功能:将source转换为字节类型,然后以16进制字符串的形式显示出来参数:source的类型同上返回值:返回值为16进制字符串类型实例:bytes('123', encoding='utf-8').hex() # 输出为:313233 类型为<class 'str'>--bytes.fromhex(hexstr)功能:将传入的16进制字符串转换为字节类型,返回值:字节类型, 形式可为b'', b'\x00\x00\x00\x00\x00'bytes.fromhex('313233') # 输出为:b'123'
3. binascii.a2b_hex(hexstr) | binascii.unhexlify(hexstr) | bytes.fromhex(hexstr)
--功能:将16进制字符串转换为字节类型--参数hexstr:必须包含偶数个十六进制数字(可以是大写或小写)--返回值:由十六进制字符串hexstr表示的二进制数据实例:bytes.fromhex('313233') # 输出为:b'123'binascii.a2b_hex('313233') # 输出为:b'123'binascii.unhexlify('313233') # 输出为:b'123'bytes.fromhex('abdc') # 输出为:b'\xab\xcd'binascii.a2b_hex('abcd') # 输出为:b'\xab\xcd'binascii.unhexlify('abcd') # 输出为:b'\xab\xcd'
4. binascii.b2a_hex(字节串) | binascii.hexlify(字节串) |
--功能:传入二进制,得到ascii编码的二进制形式--参数:字节串--返回值:返回二进制数据的十六进制表示实例:binascii.hexlify(b'abcd') # 输出为:b'61626364' <class 'bytes'>binascii.b2a_hex(b'abcd') # 输出为:b'61626364' <class 'bytes'>binascii.hexlify(b'%/\x8d\x80\xe6\xee\xb4\xcfB\x1c\xbaa\xb1\x07$\xee\xeb') # 输出为:252f8d80e6eeb4cf421cba61b10724eeebbinascii.b2a_hex(b'%/\x8d\x80\xe6\xee\xb4\xcfB\x1c\xbaa\xb1\x07$\xee\xeb') # 输出为:252f8d80e6eeb4cf421cba61b10724eeeb
学习借鉴:
https://www.cnblogs.com/liming19680104/p/12175570.html (python–binascii–二进制和ASCII编码的二进制的转换)
https://www.pynote.net/archives/1383 (int与bytes的转换)
最后,感谢每一个无私分享的博主!
python-关于字节类型的转换相关推荐
- python变量、类型及转换
python变量 python变量就是指:在运行过程中可能会发生变化的量,这个可能发生变化的量被称为变量.通常情况下:变量名称等于变量值.那么这个变量需要满足那些规则呢?让我们一起来学习. 变量又称为 ...
- python函数参数类型检查_Python中实现参数类型检查的简单方法
Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛 ...
- python变量类型之间转换_Python常用数据类型之间的转换总结
函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...
- long类型怎么转换成string_Python知识点-Python变量类型有哪些?
Python的内置变量类型是非常基础的知识点,善用变量类型转换在日常的工作学习中会给我们带来非常大的帮助. 相对于其他语言,Python的变量类型既有自己的特色方法,也有借鉴前辈的优秀之处.今天酷仔整 ...
- python 图像格式转换_如何用六行Python构建图像类型转换器
python 图像格式转换 by AMR 通过AMR 如何用六行Python构建图像类型转换器 (How to build an image type convertor in six lines o ...
- python变量类型之间转换_【Python】Python 变量类型(变量赋值,数据类型,数据转换)...
目录 Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数 ...
- python 网络字节序转换_python网络编程:ntohl、htonl、ntohs、htons
代码: root@iZ94nil6ddfZ:~# cat ntohl.py #!/usr/bin/python import socket from binascii import hexlify d ...
- python byte类型_Python3的字节类型(bytes)
Python3在处理一些底层应用时(比如socket编程)会用到字节类型(bytes). 首先Python2与Python3的字节字符串大有不同,如果不幸看错了教程,那就悲剧了.以下内容均指Pytho ...
- python——数字类型和转换
Python 数字数据类型用于存储数值. 数字类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间. 可以通过del语句删除单个或多个对象的引用: del var_1 del v ...
最新文章
- 程序员的爱情 第六章
- 锁用不好,可能把自己锁住哦!(解决多线程的死锁问题)
- SAP固定资产相关的一些表
- oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...
- 蓝桥杯2015初赛-牌型种数-dfs
- 用Veritas制作MSI文件,Active Directory系列之二十四
- 编写高质量javascript代码的基本要点
- HTML中IE条件注释判断语句(!--[if XX IE X]![endif]--)
- JACK——PaintRobot Exercise6
- Windows 10自动更新存在严重缺陷 强制升级搞坏用户硬盘!
- LeetCode--Longest Common Prefix
- Codeforces Round #277 (Div. 2) E. LIS of Sequence DP
- SharedCache-共享缓存概况和初步运用实例(1)
- ipad写python代码用什么软件_iPad 能用来写代码吗?有哪些必备软件推荐?
- 使用快捷工具搜狗词库转txt和mmseg
- 梯度下降法 与 最速下降法 的区别
- 中天易税服务器网站,中天易税网上报税系统
- java 状态模式 同步_多人联机射击游戏中的设计模式应用(二):观察者模式,单例模式,状态模式,适配器模式...
- ARM7——LPC2xxx小总结
- POI导出execle javaweb