为什么在 WAV 标头中同时使用小端和大端

Qui*_*nto 2 audio wav endianness

多年来,或者至少据我所知,关于是否使用大尾数法还是小尾数法存在很多争论。不过,我想知道你什么时候看到这两个?奇怪的问题,对吧?

在必须解码 WAV 文件时,我注意到标头由不同的段组成,这些段可能是大尾数,也可能是小尾数。 https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

在这里指定的论坛中,它指定了对大部分文件使用小端字节序的原因(Why are an integers bytes向后存储?这仅适用于标头吗?
“WAV 文件是小端字节序(最低有效字节)首先)因为该格式起源于在基于英特尔处理器的机器上运行的操作系统,这些机器使用小端格式来存储数字。

但是,我还没有找到为什么也使用大端?

提前致谢

jak*_*ket 6

说块 ID 是大尾数有点夸张。实际上,ID 是 4 个字符的 ASCII 字符串(未终止),例如'RIFF''fmt ''data'。如果您将自己限制为字符串比较,那么您可以避免需要关心字节顺序。因此,waveformat 结构在 c 中通常定义如下:

typedef struct WAVHEADER
{
    char riff[4];
    int  chunkSize;
    etc...
}
Run Code Online (Sandbox Code Playgroud)