我正在尝试破译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(最不重要的字节),因为格式源自在基于intel处理器的机器上运行的操作系统,这些机器使用小端格式来存储数字。
如果您认为它有意义,因为如果您想将长整数转换为短整数或甚至是字符,起始地址保持不变,您只需查看较少的字节。
因此,对于向上16位编码,小端格式也将用于PCM。这非常方便,因为您可以将它们作为整数拉入。不要忘记如果它们是16位,它们将被存储为两个补码有符号整数,但如果它们是8位则不会存储。 (看到 http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html 更多细节)
“倒退”是主观的。有些机器很大 - 尾数,其他人很少 - 尾数。在面向字节的上下文中,如文件格式和网络协议,顺序是任意的。有些格式喜欢指定大端或小端,有些则喜欢灵活并接受任何一种形式,并带有一个标志,指示哪些正在使用中。
看起来像WAV文件就像小端。