读取.wav文件:将小端和大端转换为整数

时间:2011-08-14 08:47:38

标签: math hex wav

我正在写一个小程序来读取.wav文件。根据我一直在关注的wav规范:

graphic of .wav file format

看起来后四个字节是一个4字节的小端数。我认为这意味着最低有效字节是第一个,字节数为5,所以换句话说,我从左到右读取它们。从我一直在阅读的内容来看,我认为我应该将它们相乘:

n=bytearray[5]+(bytearray[6]*256)+(bytearray[7]*256)+(bytearray[8]*16777216)

中的字节

但是对于一个只有90k长的文件来说,这是一个非常大的数字,1,459,618,138(十进制)。所以我想我在某处犯了一个错误。

对于其他数字,如果我理解little endian和big endian之间的差异是从右到左与从左到右的字节顺序?

1 个答案:

答案 0 :(得分:2)

数组的索引是0,所以你想要的字节是4,5,6和7:

n=bytearray[4]+(bytearray[5]*256)+(bytearray[6]*65536)+(bytearray[7]*16777216)

(请注意,您的第三个乘数必须是65536,而不是256。)