我正在使用此行将Ascii字符串转换为二进制字符串:
message=(''.join(format(ord(x), 'b') for x in message))
字符以7位格式转换(c - > 1100011) 数字以6位格式转换(2 - > 110010) 我需要以7位格式转换的数字(将0添加为MSB,也许2为0110010),任何想法?
答案 0 :(得分:2)
如果你的输入是一个字符串,这个
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
有意义吗? :)
答案 1 :(得分:0)
test