2012-03-28 65 views
1

我已經使用此函數將字符串轉換爲位。位到字符串python

def a2bits(chars): 
    return bin(reduce(lambda x, y : (x<<8)+y, (ord(c) for c in chars), 1))[3:] 

我該如何去做相反的事?比特串。我是否必須將這些位分成ASCII碼,然後將它們轉換爲字符?

我是從這個網站的功能a2bitshttp://www.daniweb.com/software-development/python/code/221031/string-to-bits

有什麼標準庫位轉換爲字符串?

+0

我建議:'鬥(A)[2:]' – MrGomez 2012-03-28 22:19:12

+0

可能需要看看[Python的BitManipulation(http://wiki.python.org/moin/BitManipulation)wiki頁面。 – malbani 2012-03-28 22:26:16

回答

2
>>> def bits2a(b): 
...  return ''.join(chr(int(''.join(x), 2)) for x in zip(*[iter(b)]*8)) 
... 
>>> bits2a('0110100001100101011011000110110001101111') 
'hello' 
+1

你給[新用戶](http://stackoverflow.com/a/30525854/55075)提供了一個不好的例子,因爲你的答案沒有添加任何解釋。 – kenorb 2015-05-29 11:15:51

1
import base64 
str(base64.b16decode(hex(int("0110100001100101", base=2))[2:],casefold=True))[2:-1] 
+1

你也可以添加一些解釋嗎? – Robert 2015-05-29 09:42:24