python整数、字符串、字节串
文章目录
一、整数、字符串、字节串之间的相互转换
1.进制转换
10进制转16进制(注意转换出来的是16进制字符串):
hex(16) ==> 0x10
16进制转10进制:
int(STRING,BASE)将字符串STRING转成十进制int,其中STRING的基是base。该函数的第一个参数是字符串
int('0x10', 16) ==> 16
类似的还有八进制oct()
, 二进制bin()
16进制字符串转成二进制
hex_str='00fe'
bin(int('1'+hex_str, 16))[3:] #含有前导0
# 结果 '0000000011111110'
bin(int(hex_str, 16))[2:] #忽略前导0
# 结果 '11111110'
二进制字符串转成16进制字符串
bin_str='0b0111000011001100'
hex(int(bin_str,2))
# 结果 '0x70cc'
2.字符to整数
10进制字符串:
int('10') ==> 10
16进制字符串:
int('10', 16) ==> 16
# 或者
int('0x10', 16) ==> 16
3.字节串to整数
使用网络数据包常用的struct,兼容C语言的数据结构
struct中支持的格式如下表
Format | C-Type | Python-Type | 字节数 | 备注 |
---|---|---|---|---|
x | pad byte | no value | 1 | |
c | char | string of length 1 | 1 | |
b | signed char | integer | 1 | |
B | unsigned char | integer | 1 | |
? | _Bool | bool | 1 | |
h | short | integer | 2 | |
H | unsigned short | integer | 2 | |
i | int | integer | 4 | |
I | unsigned int | integer or long | 4 | |
l | long | integer | 4 | |
L | unsigned long | long | 4 | |
q | long long | long | 8 | 仅支持64bit机器 |
Q |