如果我有一个wav文件,并且它的头是这样开始的:
5249 4646然后,如果我以某种方式读到它(流是一个QByteStream)
char riff[4] // 4 byte
stream.readRawData(riff,4); // reads 4 bytes into the char riff为什么知道4个字节意味着5249 4646?一个字节52,下一个49个,以此类推。如果是文本..txt文件,那么每个可见字符都是一个字节,而不是两个字节。我们看到的是溪流是一样的吗?
发布于 2014-11-26 17:04:37
5249 4646实际上是以十六进制表示的4个字节。你可以这样写:
52 49 46 46它更面向字节。
现在,R的ASCII代码是0x52。对我来说是0x49。对于F是0x46。
这些文件的规范要求文件的前4个字节是头,而该头必须是我们前面分离的4个字节。选择这4个字节的一个很好的理由是,当您在十六进制编辑器中查看文件时,十六进制编辑器将尝试将这些字节解释为ASCII (如果可以的话)--因此您可以通过简单的检查看到,被解释为ASCII的前4个字节是RIFF的,然后您很可能知道它是什么样的文件。
例如,下面是一个在十六进制编辑器中查看的示例WAV文件:

发布于 2014-11-26 17:05:01
这4个字节是未知的。你只需要读4个字节,就这样。单个字节的值介于0到255之间。
https://stackoverflow.com/questions/27154797
复制相似问题