我正在做一种flac解析器,我需要解析每个帧的标头。 flac格式(https://xiph.org/flac/format.html#frame_header)]中描述了一个字段
if(可变块大小)<8-56>:“ UTF-8”编码的样本编号(解码的数字是36位)[4]否则<8-48>:“ UTF-8”编码帧数字(解码的数字为31位)[4]
[[4]说:
用于样本/帧号的“ UTF-8”编码相同可变长度代码,用于存储压缩的UCS-2,扩展为处理较大的输入。
如果是8-56或8-48位,我绝对不知道如何知道该字段的大小。为什么解码后的数字是36或31位?另外,当我在使用UTF-8编码的十六进制编辑器中打开flac文件时,此字段中没有数字。我将非常感谢您的帮助。
我正在做一种flac解析器,我需要解析每个帧的标头。 if(variable blocksize)<...>
UTF-8编码样本表示第一个字节(帧头的5.字节)包含有效位,这些比特将告诉您帧/样本编号中有多少个后续字节。
您可以在此处检查有效位的格式:https://en.wikipedia.org/wiki/UTF-8
如果数字以48位编码,则如下所示:1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx