相关文章推荐
英勇无比的领带  ·  python ...·  1 周前    · 
痛苦的双杠  ·  python读取和保存json文件_pyth ...·  1 周前    · 
冷冷的草稿本  ·  txt文件转数组_python读取txt为数组·  1 周前    · 
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/ ...·  1 周前    · 
开朗的枕头  ·  精通 Oracle+Python,第 3 ...·  3 天前    · 
绅士的熊猫  ·  王钝根_百度百科·  2 年前    · 
英姿勃勃的香槟  ·  Linux实例中MySQL服务常见的无法启动 ...·  2 年前    · 
绅士的皮蛋  ·  SystemVerilog-决策语句-cas ...·  2 年前    · 
文质彬彬的作业本  ·  坐拥星球 - 🌈️包子漫畫·  2 年前    · 
博学的香菜  ·  前端实现svg图片居中放大缩小与拖动,使用v ...·  2 年前    · 
Code  ›  Python 字符串与字节数组转换开发者社区
python字符串 16进制转字符串 字节数组 python
https://cloud.tencent.com/developer/article/2201997
谈吐大方的烤土司
2 年前
作者头像
王瑞的博客
0 篇文章

Python 字符串与字节数组转换

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 信息安全技术分享 > Python 字符串与字节数组转换

Python 字符串与字节数组转换

作者头像
王瑞的博客
发布 于 2022-12-28 18:08:09
363 0
发布 于 2022-12-28 18:08:09
举报

整数之间的进制转换:

10进制转16进制: hex(16)  ==>  0x10
16进制转10进制: int('0x10', 16)  ==>  16

类似的还有oct(), bin()

字符串转整数:

10进制字符串: int('10')  ==>  10
16进制字符串: int('10', 16)  ==>  16
16进制字符串: int('0x10', 16)  ==>  16

字节串转整数:

转义为short型整数: struct.unpack('<hh', bytes(b'\x01\x00\x00\x00'))  ==>  (1, 0)
转义为long型整数: struct.unpack('<L', bytes(b'\x01\x00\x00\x00'))  ==>  (1,)

整数转字节串:

转为两个字节: struct.pack('<HH', 1,2)  ==>  b'\x01\x00\x02\x00'
转为四个字节: struct.pack('<LL', 1,2)  ==>  b'\x01\x00\x00\x00\x02\x00\x00\x00'

字符串转字节串:

字符串编码为字节码: '12abc'.encode('ascii')  ==>  b'12abc'
数字或字符数组: bytes([1,2, ord('1'),ord('2')])  ==>  b'\x01\x0212'
16进制字符串: bytes().fromhex('010210')  ==>  b'\x01\x02\x10'
16进制字符串: bytes(map(ord, '\x01\x02\x31\x32'))  ==>  b'\x01\x0212'
16进制数组: bytes([0x01,0x02,0x31,0x32])  ==>  b'\x01\x0212'

字节串转字符串:

字节码解码为字符串: bytes(b'\x31\x32\x61\x62').decode('ascii')  ==>  12ab
字节串转16进制表示,夹带ascii: str(bytes(b'\x01\x0212'))[2:-1]  ==>  \x01\x0212
字节串转16进制表示,固定两个字符表示: str(binascii.b2a_hex(b'\x01\x0212'))[2:-1]  ==>  01023132
字节串转16进制数组: [hex(x) for x in bytes(b'\x01\x0212')]  ==>  ['0x1', '0x2', '0x31', '0x32']

案例总结

import binascii  
import struct  
def example(express, result=None):  
    if result == None:  
        result = eval(express)  
    print(express, ' ==> ', result)  
if __name__ == '__main__':  
    print('整数之间的进制转换:')  
    print("10进制转16进制", end=': ');example("hex(16)")  
    print("16进制转10进制", end=': ');example("int('0x10', 16)")  
    print("类似的还有oct(), bin()")  
    print('\n-------------------\n')  
    print('字符串转整数:')  
    print("10进制字符串", end=": ");example("int('10')")  
    print("16进制字符串", end=": ");example("int('10', 16)")  
    print("16进制字符串", end=": ");example("int('0x10', 16)")  
    print('\n-------------------\n')  
    print('字节串转整数:')  
    print("转义为short型整数", end=": ");example(r"struct.unpack('<hh', bytes(b'\x01\x00\x00\x00'))")  
    print("转义为long型整数", end=": ");example(r"struct.unpack('<L', bytes(b'\x01\x00\x00\x00'))")  
    print('\n-------------------\n')  
    print('整数转字节串:')  
    print("转为两个字节", end=": ");example("struct.pack('<HH', 1,2)")  
    print("转为四个字节", end=": ");example("struct.pack('<LL', 1,2)")  
    print('\n-------------------\n')  
    print('字符串转字节串:')  
    print('字符串编码为字节码', end=": ");example(r"'12abc'.encode('ascii')")  
    print('数字或字符数组', end=": ");example(r"bytes([1,2, ord('1'),ord('2')])")  
    print('16进制字符串', end=': ');example(r"bytes().fromhex('010210')")  
    print('16进制字符串', end=': ');example(r"bytes(map(ord, '\x01\x02\x31\x32'))")  
    print('16进制数组', end =': ');example(r'bytes([0x01,0x02,0x31,0x32])')  
    print('\n-------------------\n')  
 
推荐文章
英勇无比的领带  ·  python 16进制转float_mob64ca12e58adb的技术博客_
1 周前
痛苦的双杠  ·  python读取和保存json文件_python json 保存 编码
1 周前
冷冷的草稿本  ·  txt文件转数组_python读取txt为数组
1 周前
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/csv读取关键字 - Wilson_Blogs
1 周前
开朗的枕头  ·  精通 Oracle+Python,第 3 部分:数据解析
3 天前
绅士的熊猫  ·  王钝根_百度百科
2 年前
英姿勃勃的香槟  ·  Linux实例中MySQL服务常见的无法启动或启动异常处理有哪些方法_云服务器 ECS-阿里云帮助中心
2 年前
绅士的皮蛋  ·  SystemVerilog-决策语句-case语句-腾讯云开发者社区-腾讯云
2 年前
文质彬彬的作业本  ·  坐拥星球 - 🌈️包子漫畫
2 年前
博学的香菜  ·  前端实现svg图片居中放大缩小与拖动,使用viewbox属性(vue3+typescript+vue自定义命令)_svg实现拖拽和缩放_永远不会太晚的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号