为什么在WAV文件头中使用小端和大端?
问题描述:
多年来,至少我听说过,究竟是使用大的还是小的端存在许多争论。但是,我想知道你什么时候看到两者?奇怪的问题,对吧?为什么在WAV文件头中使用小端和大端?
在解码WAV文件时,我注意到标题由不同的段组成,可能是大的或小的。 https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
在这里指定的论坛,它规定了使用小端的文件有很大比例的原因(Why are an integers bytes stored backwards? Does this apply to headers only?)
“WAV文件是little-endian的(至少显著字节第一),因为格式起源于在基于英特尔处理器的机器上运行的操作系统,这些机器使用小端格式来存储数字。
但是,我还没有找到为什么使用big-endian?
在此先感谢
答
这是一个有点夸张的说大块ID是大端。在实践中,ID是4个字符的ASCII字符串(未终止),例如, 'RIFF'
,'fmt '
和'data'
。如果你限制自己的字符串比较,那么你可以避免需要关注字节顺序。这样,WAVEFORMAT结构通常定义像下面在C:
typedef struct WAVHEADER
{
char riff[4];
int chunkSize;
etc...
}
FYI,斯坦福页面不再存在。 – 2015-02-09 20:25:13