使用此代码获取字符串并将其转换为二进制:
bin(reduce(lambda x, y: 256*x+y, (ord(c) for c in 'hello'), 0))
这将输出:
0b110100001100101011011000110110001101111
如果我把它放在this site(在右边的站点)中,我就会得到hello
的消息。我想知道它用什么方法。我知道我可以将二进制字符串拼接成8,然后将其与对应的值匹配到bin(ord(character))
或其他方式。真的在找更简单的东西。
Tags:
对于Python 2上
[ -~]
范围内的ASCII字符:相反:
在Python3.2+中:
相反:
要支持Python 3中的所有Unicode字符:
以下是与Python 2/3兼容的单一源代码版本:
示例
我不知道你怎么想你能做到这一点,除了一个字符一个字符的操作——它本质上是一个字符一个字符的操作。当然有代码可以帮你做到这一点,但是没有比逐字逐句地做更简单的方法了。
首先,需要去掉
0b
前缀,并将字符串左移零,使其长度可被8整除,以便将位字符串简单地分成几个字符:然后将字符串分成8个二进制数字块,将它们转换为ASCII字符,并将它们连接回字符串:
如果你真的想把它当作一个数字来处理,你仍然需要考虑这样一个事实:如果你想从左到右而不是从右到左,最左边的字符将最多有七位数长。
仅内置
python
这里有一个简单字符串的纯python方法,留给后人。
相关问题 更多 >
编程相关推荐