如何将拆分得到的7位二进制子串列表转换为可用字符串以实现ASCII转码
二进制7位块转ASCII解决方案
你直接打印列表时Python会输出列表的结构化表示,因此会自带方括号、元素引号,你需要遍历每个7位二进制子串单独处理即可,完整实现代码如下:
def binary_to_ascii7bits(bstring): n = 7 # 拆分7位二进制子串 byte_blocks = [bstring[i:i+n] for i in range(0, len(bstring), n)] result = '' for bin_str in byte_blocks: # 二进制转十进制,第二个参数指定输入为二进制格式 dec_num = int(bin_str, 2) # 十进制数转对应ASCII字符后拼接 result += chr(dec_num) return result # 测试示例 if __name__ == '__main__': # 对应ASCII字符'x'的7位二进制是1111000,两个拼接输入输出为xx test_input = '11110001111000' print(binary_to_ascii7bits(test_input))
如果你的需求仅为打印拆分后的7位二进制串、不需要转ASCII,直接遍历列表打印每个元素即可,不会出现括号和引号:
def print_7bit_blocks(bstring): n = 7 byte_blocks = [bstring[i:i+n] for i in range(0, len(bstring), n)] for block in byte_blocks: print(block)
内容的提问来源于stack exchange,提问作者kaydenscan
相关产品推荐
相关产品推荐

