首页 > 编程语言 >python常用的进制、字符串、字节之间的转换

python常用的进制、字符串、字节之间的转换

时间:2022-08-28 19:24:43浏览次数:45  
标签:字节 16 python 字符串 print x01 进制

整数之间的进制转换:
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']

 

 1 import binascii
 2 import struct
 3 
 4 
 5 def example(express, result=None):
 6     if result == None:
 7         result = eval(express)
 8     print(express, ' ==> ', result)
 9 
10 
11 if __name__ == '__main__':
12     print('整数之间的进制转换:')
13     print("10进制转16进制", end=': ');
14     example("hex(16)")
15     print("16进制转10进制", end=': ');
16     example("int('0x10', 16)")
17     print("类似的还有oct(), bin()")
18 
19     print('\n-------------------\n')
20 
21     print('字符串转整数:')
22     print("10进制字符串", end=": ");
23     example("int('10')")
24     print("16进制字符串", end=": ");
25     example("int('10', 16)")
26     print("16进制字符串", end=": ");
27     example("int('0x10', 16)")
28 
29     print('\n-------------------\n')
30 
31     print('字节串转整数:')
32     print("转义为short型整数", end=": ");
33     example(r"struct.unpack('<hh', bytes(b'\x01\x00\x00\x00'))")
34     print("转义为long型整数", end=": ");
35     example(r"struct.unpack('<L', bytes(b'\x01\x00\x00\x00'))")
36 
37     print('\n-------------------\n')
38 
39     print('整数转字节串:')
40     print("转为两个字节", end=": ");
41     example("struct.pack('<HH', 1,2)")
42     print("转为四个字节", end=": ");
43     example("struct.pack('<LL', 1,2)")
44 
45     print('\n-------------------\n')
46 
47     print('字符串转字节串:')
48     print('字符串编码为字节码', end=": ");
49     example(r"'12abc'.encode('ascii')")
50     print('数字或字符数组', end=": ");
51     example(r"bytes([1,2, ord('1'),ord('2')])")
52     print('16进制字符串', end=': ');
53     example(r"bytes().fromhex('010210')")
54     print('16进制字符串', end=': ');
55     example(r"bytes(map(ord, '\x01\x02\x31\x32'))")
56     print('16进制数组', end=': ');
57     example(r'bytes([0x01,0x02,0x31,0x32])')
58 
59     print('\n-------------------\n')
60 
61     print('字节串转字符串:')
62     print('字节码解码为字符串', end=": ");
63     example(r"bytes(b'\x31\x32\x61\x62').decode('ascii')")
64     print('字节串转16进制表示,夹带ascii', end=": ");
65     example(r"str(bytes(b'\x01\x0212'))[2:-1]")
66     print('字节串转16进制表示,固定两个字符表示', end=": ");
67     example(r"str(binascii.b2a_hex(b'\x01\x0212'))[2:-1]")
68     print('字节串转16进制数组', end=": ");
69     example(r"[hex(x) for x in bytes(b'\x01\x0212')]")
70 
71     print('\n===================\n')

 

 

股票下跌、金融破产、妻离子散、物是人非、天灾人祸,人生中难免会遇到或大或小的困难,但有一句话总能延展人们的心境:行到水穷处,坐看云起时。

标签:字节,16,python,字符串,print,x01,进制
From: https://www.cnblogs.com/lzcnblogs/p/16626764.html

相关文章

  • Python入门系列(三)一学就会-基础数据类型
    数据类型您可以使用type()函数获取任何对象的数据类型。x=5print(type(x))数字类型x=1#inty=2.8#floatz=1j#complexInt,或integer,是一个长度不......
  • python版本
    一个系统上可以同时安装几个python版本,不必去卸载旧的python版本;ubuntu上安装新的python版本:https://blog.csdn.net/weixin_42256557/article/details/122342614安装完成......
  • python中的多线程与多进程
    线程概念:线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的......
  • 字节一面:说说TCP的三次握手
    上周有朋友去了字节面试,问到了TCP三次握手的问题,当时回答的不是很好,对于三次握手的发送的报文信息都不太熟,本文主要做一下总结和记录。TCP全称为TransmissionControlP......
  • python中的浅拷贝与深拷贝
    1.python中的数据类型分为两种:不可变数据类型:数值number,字符串String,元组tuple可变数据类型:字典dic,列表list,集合set2.定义深拷贝:拷贝的程度深,开辟了一块新......
  • 3,python3 windows 安装,及 windows python 环境 requests模块安装
    1,安装python环境1,执行安装包,双击->python-3.10.4-amd64.exe->勾选选自定义安装和勾选添加环境变量  2,勾选安装所有用户和设置安装路径  3,cmd->python,验证Py......
  • Python Selenium使用cookie实现自动登录微博
    @目录前言一、预登陆获取cookie1)cookie处理2)预登陆二、登录测试前言模拟登录微博是实现微博网页爬虫的第一步,现在的微博网页版有个sinavisitsystem,只有登录过后才......
  • [转]Python PEP8 代码规范常见问题及解决方法
    转自:https://blog.csdn.net/qq_36759224/article/details/89304878 Python的PEP8代码规范,将常见的PEP8代码规范问题和解决方法记录一下,学习一下,养成良好......
  • 记录一次网站上传的python代替方法
    网址:https://tool2-mml.sjtu.edu.cn/VRprofile/VRprofile.php这个网站需要上传文件 思路抓包看下网络请求开始看的时候发现没啥然后用wireshark看了下发现文件上传......
  • 字节笔试题
    求长度为n数组最大子数组乘积,数组元素只包括[0,1,2,4,8,…1024]输入:5[2,1,4,0,16,1]输出16依赖判断,不依赖输出1,依赖输出0(判断是否有环)给定数据为123表示1依赖......