为了账号安全,请及时绑定邮箱和手机立即绑定

如何将“0”和“1”流转换为字符?

如何将“0”和“1”流转换为字符?

牧羊人nacy 2021-09-14 20:48:47
我试着翻译流0,1字符,而不使用其他库,例如“你好世界”:0100100001000101010011000100110001001111001000000101011101001111010100100100110001000100我发现了这样的东西:def BinaryToString(binary):    bingen = (binary[i:i+7] for i in range(0, len(binary), 7))    return ''.join(chr(eval('0b'+n)) for n in bingen)但是当我尝试翻译时,这就是答案:>>> BinaryToString("0100100001000101010011000100110001001111001000000101011101001111010100100100110001000100")"$\x11)Db<@W'TID\x04">>> 
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

int需要第二个参数来指定基数,所以你可以使用类似int("00001110", 2)得到 14 的东西。


>>> binary = "0100100001000101010011000100110001001111001000000101011101001111010100100100110001000100"

>>> ''.join([chr(int(binary[i:i+8], 2)) for i in range(0, len(binary), 8)])

'HELLO WORLD'


查看完整回答
反对 回复 2021-09-14
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

该函数一次取 7 个二进制数字并将它们转换为一个字符。将其更改为一次转换 8 位数字。


def BinaryToString(binary):

    bingen = (binary[i:i+8] for i in range(0, len(binary), 8))

    return ''.join(chr(eval('0b'+n)) for n in bingen)

这一切都取决于原始文本的编码方式,但它适用于您提供的示例。(ASCII 最初使用 7 位定义。扩展 ASCII 表使用 8。)


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信