我目前正在尝试破译 WAV 文件。从标头到 PCM 数据。
我找到了一个 PDF ( http://www.tdt.com/T2Support/technical_notes/tn0132.pdf ),详细介绍了 WAV 文件的结构,并且我已经能够使用以下方法提取并理解适当的标题数据Ghex2。但我的问题是:
为什么整数字节向后存储?即十二月。20 存储为 0x14000000 而不是 0x00000014。
PCM数据的整数是否也向后存储?
我目前正在尝试破译 WAV 文件。从标头到 PCM 数据。
我找到了一个 PDF ( http://www.tdt.com/T2Support/technical_notes/tn0132.pdf ),详细介绍了 WAV 文件的结构,并且我已经能够使用以下方法提取并理解适当的标题数据Ghex2。但我的问题是:
为什么整数字节向后存储?即十二月。20 存储为 0x14000000 而不是 0x00000014。
PCM数据的整数是否也向后存储?
WAV 文件是 little-endian(最低有效字节优先),因为该格式起源于在基于英特尔处理器的机器上运行的操作系统,这些机器使用 little-endian 格式存储数字。
如果您认为它是有道理的,因为如果您想将一个长整数转换为一个短整数甚至一个字符,那么起始地址保持不变,您只需查看更少的字节。
因此,对于 16 位以上的编码,小端格式也将用于 PCM。这非常方便,因为您可以将它们作为整数拉入。不要忘记,如果它们是 16 位,它们将被存储为二进制补码有符号整数,但如果它们是 8 位,则不会。(有关详细信息,请参阅http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html )