【问题标题】:Python Ascii to bin conversion issuePython Ascii 到 bin 转换问题
【发布时间】:2015-10-19 08:34:22
【问题描述】:

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

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

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

【问题讨论】:

标签: python


【解决方案1】:

如果你的输入是一个字符串,这个

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

这有意义吗? :)

【讨论】:

  • 谢谢。这是我一直在寻找的线路!
【解决方案2】:
message=(''.join('0'+format(ord(x), 'b') for x in message))

【讨论】:

  • 我需要 7 位格式的字符和数字。使用这一行任何字符都将是 8 位
猜你喜欢
  • 2020-07-03
  • 2012-03-01
  • 2011-11-27
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 2013-12-30
相关资源
最近更新 更多