使用此代码获取字符串并将其转换为二进制:
bin(reduce(lambda x, y: 256*x+y, (ord(c) for c in 'hello'), 0))
Run Code Online (Sandbox Code Playgroud)
这个输出:
0b110100001100101011011000110110001101111
Run Code Online (Sandbox Code Playgroud)
哪个,如果我把它放到这个网站(在右边的网站上),我得到了我的hello
回信息.我想知道它使用什么方法.我知道我可以将二进制字符串拼接成8位,然后将其与相应的值bin(ord(character))
或其他方式匹配.真的在寻找更简单的东西.
我做了一个小python程序,从文件读取二进制文件并将其存储到文本文件,读取文本文件并存储二进制文件.但是,我无法让二进制文件工作......它读取这样的文件:
f_bin = open(bin_file,"rb")
to_bin_data = f_bin.read()
bin_data = bin(reduce(lambda x, y: 256*x+y, (ord(c) for c in to_bin_data), 0))
f_bin.close()
Run Code Online (Sandbox Code Playgroud)
这个对我不起作用... 将二进制转换为ASCII,反之亦然
像这样的网页:http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp
编辑:我现在为它做了一个很长的if else脚本,但感谢你的答案
音频文件通过API发送给我们,该API是Base64编码的PCM格式。我需要将其转换为PCM,然后转换为WAV进行处理。
我能够使用以下代码解码->保存到pcm->从pcm读取->另存为wav。
decoded_data = base64.b64decode(data, ' /')
with open(pcmfile, 'wb') as pcm:
pcm.write(decoded_data)
with open(pcmfile, 'rb') as pcm:
pcmdata = pcm.read()
with wave.open(wavfile, 'wb') as wav:
wav.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))
wav.writeframes(pcmdata)
Run Code Online (Sandbox Code Playgroud)
如果我可以将输入字符串解码为二进制并将其另存为wav,会容易得多。所以我在python中将字符串转换为二进制中 做了类似的事情
decoded_data = base64.b64decode(data, ' /')
ba = ' '.join(format(x, 'b') for x in bytearray(decoded_data))
with wave.open(wavfile, 'wb') as wav:
wav.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))
wav.writeframes(ba)
Run Code Online (Sandbox Code Playgroud)
但是我错a bytes-like object is required, not 'str'
了wav.writeframes
。
也尝试过base54.decodebytes()
并得到相同的错误。
正确的方法是什么?
我有bytes
需要转换为的类型的值BIT STRING
bytes_val = (b'\x80\x00', 14)
索引零中的字节需要转换为长度由第二个元素(在本例中为 14)指示的位串,并格式化为如下所示的 8 位组。
预期输出 => '10000000 000000'B
另一个例子
bytes_val2 = (b'\xff\xff\xff\xff\xf0\x00', 45) #=> '11111111 11111111 11111111 11111111 11110000 00000'B
Run Code Online (Sandbox Code Playgroud) 我知道这在python 2.6中很容易实现.但是在Python 2.5中最简单的方法是什么?
x = "This is my string"
b = to_bytes(x) # I could do this easily in 2.7 using bin/ord 3+ could use b"my string"
print b
Run Code Online (Sandbox Code Playgroud)
有什么建议?我想拿x并把它变成
00100010010101000110100001101001011100110010000001101001011100110010000001101101011110010010000001110011011101000111001001101001011011100110011100100010