相关文章推荐
爽快的大熊猫  ·  【Python】PyCharm ...·  3 周前    · 
聪明伶俐的扁豆  ·  【最新版】Photoshop 2025 ...·  3 周前    · 
小猫猫  ·  Web自动化测试—— ...·  1 周前    · 
豁达的铁链  ·  浅谈pycharm导入pandas包遇到的问 ...·  11 月前    · 
严肃的跑步鞋  ·  WindowBuilder简单登录界面制作_ ...·  1 年前    · 
阳光的皮带  ·  工程编译时报错:”stdlib.h: ...·  1 年前    · 
时尚的佛珠  ·  Python读取大型数据文件的6种方式汇总_ ...·  1 年前    · 
大力的键盘  ·  SQL解析在美团点评中的应用-腾讯云开发者社 ...·  1 年前    · 
Code  ›  Python 字符串与字节数组转换开发者社区
python字符串 16进制转字符串 字节数组 python
https://cloud.tencent.com/developer/article/2201997
谈吐大方的烤土司
1 年前
作者头像
王瑞的博客
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】PyCharm debug报错:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode bytes in position 1022-1023_p
3 周前
聪明伶俐的扁豆  ·  【最新版】Photoshop 2025 Beta v26.6 安装使用教程介绍!【含PS安装包版本合集】_ps2025 quark
3 周前
小猫猫  ·  Web自动化测试—— Selenium+Python Windows环境搭建 - 爱笑的小宇宙
1 周前
豁达的铁链  ·  浅谈pycharm导入pandas包遇到的问题及解决-腾讯云开发者社区-腾讯云
11 月前
严肃的跑步鞋  ·  WindowBuilder简单登录界面制作_windowbuilder怎么设计窗口-CSDN博客
1 年前
阳光的皮带  ·  工程编译时报错:”stdlib.h: 没有那个文件或目录“的解决办法_fatal error: stdlib.h: 没有那个文件或目录-CSDN博客
1 年前
时尚的佛珠  ·  Python读取大型数据文件的6种方式汇总_python_脚本之家
1 年前
大力的键盘  ·  SQL解析在美团点评中的应用-腾讯云开发者社区-腾讯云
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号