为什么在WAV标题中使用Little和Big Endian

时间:2014-10-02 20:52:49

标签: audio wav endianness

多年来,或者至少我所听到过的,关于是否使用大端或小端的争论很多。但是,我想知道你什么时候看到两者?奇怪的问题,对吧?

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

在此处指定的论坛中,它指定了对文件的大部分使用little-endian的原因(Why are an integers bytes stored backwards? Does this apply to headers only?
'WAV文件是little-endian(最不重要的字节),因为格式源自在基于intel处理器的机器上运行的操作系统,这些机器使用小端格式来存储数字。'

但是,我还没有找到为什么还要使用big-endian?

提前致谢

1 个答案:

答案 0 :(得分:4)

说块ID是大端的,这有点过分了。实际上,ID是4个字符的ASCII字符串(未终止的),例如, 'RIFF''fmt ''data'。如果您将自己局限于字符串比较,那么您可以避免需要关注字节顺序。因此,波形结构通常在c:

中定义如下
typedef struct WAVHEADER
{
    char riff[4];
    int  chunkSize;
    etc...
}