当前位置: 代码迷 >> python >> Python Ascii到bin转换问题
  详细解决方案

Python Ascii到bin转换问题

热度:129   发布时间:2023-06-13 14:15:34.0

我正在使用以下行将Ascii字符串转换为二进制字符串:

message=(''.join(format(ord(x), 'b') for x in message))

字符以7位格式转换(c-> 1100011)数字以6位格式转换(2-> 110010)我需要以7位格式转换的数字(添加0作为MSB,也许所以2是0110010),知道吗?

如果您输入的是字符串,则此

format(ord('2'),'07b')

总是产生7位输出,例如

'0110010'

如果您预先忽略输入的类型(即字符串或整数)

format(ord(n) if isinstance(n, str) else n,'07b')

对于n = '2'产生

'0110010'

而对于n = 2则产生

'0000010'

区别在于,“ 2”是一个字符串,并且“ 2”的表示形式的值为50(十进制)

如果您想为字符和数字都使用唯一的二进制代码(例如,给数字与字符相同的代码)

format(ord(n) if isinstance(n, str) else n+ord('0'),'07b')

现在产生

'0110010'

对于n = '2'n = 2

是否有意义? :)

message=(''.join('0'+format(ord(x), 'b') for x in message))
  相关解决方案