相关文章推荐
长情的火锅  ·  python读取excel,获得下拉选中所有 ...·  3 周前    · 
勤奋的鸭蛋  ·  python - Set up of ...·  2 周前    · 
大力的长颈鹿  ·  python - Conda env ...·  2 周前    · 
讲道义的闹钟  ·  如何释放Python占用的内存?开发者社区·  3 天前    · 
聪明的橙子  ·  python内存机制与垃圾回收、调优手段 ...·  3 天前    · 
买醉的草稿本  ·  童装拿货必去的十大批发市场,你知道几个? -生意圈·  3 月前    · 
活泼的灌汤包  ·  品质剧集爆发综艺寻求破局-新华网·  4 月前    · 
骑白马的红茶  ·  金門日報全球資訊網-輕鬆學英語‧英語輕鬆學財 ...·  4 月前    · 
发呆的水煮肉  ·  知母時餵藥器/有蓋藥杯10ml ...·  5 月前    · 
刚分手的茶叶  ·  北京首旅酒店(集团)股份有限公司_百度百科·  1 年前    · 
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读取excel,获得下拉选中所有选项_python获取下拉菜单内容 excel
3 周前
勤奋的鸭蛋  ·  python - Set up of virtual environment in anaconda failing - Stack Overflow
2 周前
大力的长颈鹿  ·  python - Conda env create from .yml gives "unexpected error" - Stack Overflow
2 周前
讲道义的闹钟  ·  如何释放Python占用的内存?开发者社区
3 天前
聪明的橙子  ·  python内存机制与垃圾回收、调优手段 - 长安223
3 天前
买醉的草稿本  ·  童装拿货必去的十大批发市场,你知道几个? -生意圈
3 月前
活泼的灌汤包  ·  品质剧集爆发综艺寻求破局-新华网
4 月前
骑白马的红茶  ·  金門日報全球資訊網-輕鬆學英語‧英語輕鬆學財源廣進先懂錢
4 月前
发呆的水煮肉  ·  知母時餵藥器/有蓋藥杯10ml 餵食器餵藥吃藥器寶寶餵藥藥水杯漱口水 ...
5 月前
刚分手的茶叶  ·  北京首旅酒店(集团)股份有限公司_百度百科
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号