python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python字符串和二进制字符串转换

Python字符串和二进制字符串之间的转换方法示例

作者:羽丶千落

python中没有0-1形式的二进制类型,但我们依然可以存储二进制类型的数据,下面这篇文章主要给大家介绍了关于Python字符串和二进制字符串之间的转换方法,需要的朋友可以参考下

说明

字符串:可以包含任意字符
二进制字符串:转换结果的长度为8的倍数

涉及的内容:

  • 字符串与bytes类型的互相转换
  • bytes类转与 list 列表的互相转换
  • bin函数的使用
  • int函数的使用

字符串转二进制字符串

步骤:

实现:

text = "我的世界123abc"
b_text = text.encode() # b'\xe6\x88\x91\xe7\x9a\x84\xe4\xb8\x96\xe7\x95\x8c123abc'
list_b_text = list(b_text)
# [230, 136, 145, 231, 154, 132, 228, 184, 150, 231, 149, 140, 49, 50, 51, 97, 98, 99]
re = []
for num in list_b_text:
	re.append(bin(num)[2:].zfill(8))
"""
['11100110', '10001000', '10010001', '11100111', '10011010', '10000100', '11100100', '10111000', '10010110', '11100111', '10010101', '10001100', '00110001', '00110010', '00110011', '01100001', '01100010', '01100011']
"""
bin_str = ''.join(re)
# '111001101000100010010001111001111001101010000100111001001011100010010110111001111001010110001100001100010011001000110011011000010110001001100011'

二进制字符串转字符串

步骤:

实现:

bin_str='111001101000100010010001111001111001101010000100111001001011100010010110111001111001010110001100001100010011001000110011011000010110001001100011'

list_bin = [bin_str[i:i+8] for i in range(0,len(bin_str),8)]
"""
['11100110', '10001000', '10010001', '11100111', '10011010', '10000100', '11100100', '10111000', '10010110', '11100111', '10010101', '10001100', '00110001', '00110010', '00110011', '01100001', '01100010', '01100011']
"""
list_int = []
for bin_s in list_bin:
	list_int.append(int(bin_s,2))
# [230, 136, 145, 231, 154, 132, 228, 184, 150, 231, 149, 140, 49, 50, 51, 97, 98, 99]

bytes(list_int).decode()
# '我的世界123abc'

附:Python 二进制、整数相互转化

整数转二进制:
1、采用%2的方式计算
2、采用python自带了方法 bin.
比如bin(10) 回返回字符串'0b1010' ,只留下‘0',‘1'序列需要把‘0b'去掉.
bin(number).replace('0b','') 或bin(number)[2:]
>>> bin(10)  // 为了下边表示方便 放入t中
'0b1010'
 
二进制转整数:
>>> int(t[2:],2)
10

总结

到此这篇关于Python字符串和二进制字符串之间的转换方法的文章就介绍到这了,更多相关Python字符串和二进制字符串转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文