2在python中赞美一个字节

时间:2016-06-30 16:28:11

标签: python

我正在处理以下python代码:

import wave
from bitstring import BitArray


w = wave.open('file.wav','rb')

totalFrames = w.getnframes()      #Total number of samples
bytesData = w.readframes(totalFrames)
binData = BitArray(bytesData)
bin2Data = (binData.bin)

file.wav有4882个样本,采样率为44.1KHz。 我的目标是能够获得我从file.wav获得的二进制数据的赞美。 ' binData.bin'给我通过\x00\x00N\x00n\xff..但以字符串格式获得的字节(w.readframes)的二进制形式。

我用它来获得2' scompliment:

2comp = ~(bin2Data) + 0b1

但是徒劳无功。它会显示以下错误:

Traceback (most recent call last):
  File "speaker_bin.py", line 16, in <module>
    bin2Data = ~((binData.bin)) + 0b1
TypeError: bad operand type for unary ~: 'str'

我尝试int(bin2Data)转换它但它不起作用(它根本不会打印任何内容。我猜是因为数据的大小。)

我做错了什么?

我真的很感激任何反馈。 (即使是朝着正确方向的简单推动)

1 个答案:

答案 0 :(得分:0)

您需要使用

int(binData.bin, 2)

要创建一个int,您可以将base指定为第二个参数,否则它只会假设该值在base 10中。从docs可以看出,默认基数为10,这是为什么你需要指定10以外的其他基数

0b1

也一样