Python字符串和二进制字符串之间的转换方法示例
更新时间:2023年06月14日 15:41:23 作者:羽丶千落
python中没有0-1形式的二进制类型,但我们依然可以存储二进制类型的数据,下面这篇文章主要给大家介绍了关于Python字符串和二进制字符串之间的转换方法,需要的朋友可以参考下
说明
字符串:可以包含任意字符
二进制字符串:转换结果的长度为8的倍数
涉及的内容:
- 字符串与bytes类型的互相转换
- bytes类转与 list 列表的互相转换
- bin函数的使用
- int函数的使用
字符串转二进制字符串
步骤:
- 将字符串转成bytes类型
- 将bytes类型转成list类型(元素为int型)
- 将list的每个元素转成二进制字符串(数值在0-255之间),指定长度为8位
- 拼接每个元素转成的二进制字符串
实现:
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'
二进制字符串转字符串
步骤:
- 将二进制字符串进行切分,每8位为一组
- 将每一组的二进制字符串转成int类型,以列表类型存储
- 将列表转为bytes类型
- 将bytes类型转为字符串
实现:
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字符串和二进制字符串转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论