1、ascii字符串转bytearray(byte数组)
说明
ascii: ‘ab’ -> bytes: b’ab’同列表[97,98]
# 举例:
str = 'ab'
str_array = str.encode()
print(str_array[0])
print(str_array)
# 结果:
string_data = ‘sned_data’
bytearray_data = string_data.encode()
2、bytearray转string
注:encode()和decode()要组合使用,只有encode()之后才能使用decode();
# 举例:
print('ab'.encode())
print(type('ab'.encode()))
print('ab'.encode().decode('utf-8'))
print(type('ab'.encode().decode('utf-8')))
# 结果:
b'ab'
<class 'bytes'>
ab
<class 'str'>
3、ascii hex字符串转ascii字符串
‘61’->‘a’
bytes.fromhex(‘61’)
# 举例:
str = '61'
byte_array = bytes.fromhex('61')
print(type(byte_array))
print(byte_array[0])
print(byte_array)
# 结果:
<class 'bytes'>
97 # 打印[]形式的单个字节时显示具体的值
b'a' # 打印整个bytes时以b'形式显示
4、list列表转bytes数组
# 举例:
byte_array = [0x0a,0x0b,2,3]
byte_out = bytes(byte_array)
print(type(byte_array))
print(byte_array)
print(type(byte_out))
print(byte_out)
print(byte_out[1])
# 结果:
<class 'list'>
[10, 11, 2, 3]
<class 'bytes'>
b'\n\x0b\x02\x03'
11
5、str十六进制数字字符串转int数字
b’'为bytes类型
‘’为str类型
# 举例
str_in = '3132' # b'3132'同'3132'效果一样
int_out = int(str_in,10) # 将十进制字符串转成int数字
print(int_out)
print(type(int_out))
str_in = '3132' # '0x3132',b'3132',b'0x3132'同'3132'效果一样
int_out = int(str_in, 16) # 将十六进制字符串转成int数字
print(int_out)
print(type(int_out))
# 结果
3132
<class 'int'>
12594 # 十六进制为0x3132
<class 'int'>
6、ascii字符转int数字
# 举例
str_in = '1'
print(type(str_in))
int_out = ord(str_in)
print(int_out)
print(type(int_out))
# 结果
<class 'str'>
49
<class 'int'>
7、hex字符串转int数字
# 举例
str_in = '49'
print(type(str_in))
int_out = int(str_in) # 也可使用该方式int(str_in[a:b])截图字符串
print(int_out)
print(type(int_out))
# 结果
<class 'str'>
49
<class 'int'>
8、int数字转对应ascii字符
# 举例
int_in = 0x31
chr_out = chr(int_in)
print(chr_out)
print(type(chr_out))
# 结果
1
<class 'str'>
9、int数字转十进制数ascii字符串
# 举例
int_in = 49
print(type(int_in))
str_out = str(int_in)
print(str_out)
print(type(str_out))
# 结果
<class 'int'>
49
<class 'str'>
10、int数字转str十六进制数字字符串
b’'为bytes类型
‘’为str类型
# 举例
int_in = 31
str_out = hex(int_in)
print(str_out)
print(type(str_out))
# 结果
0x1f
<class 'str'>
11、int数字转bin字符串
# 举例
int_in = 0x31
print(type(int_in))
bin_out = bin(int_in)
print(bin_out)
print(type(bin_out))
# 结果
<class 'int'>
0b110001
<class 'str'>
12、bin字符串或者byte转int数字
b’'为bytes类型
‘’为str类型
# 举例
bin_in1 = b'010101' # b'010101'、'0b010101'同'010101'效果一样
bin_in2 = '010101'
bin_in3 = '0b010101'
print(type(bin_in1))
print(type(bin_in2))
print(type(bin_in3))
int_out = int(bin_in1,2)
print(int_out)
print(type(int_out))
# 结果
<class 'bytes'>
<class 'str'>
<class 'str'>
21
<class 'int'>