繁体   English   中英

位排序/字节顺序 flac 解码

[英]Bit ordering / Endianness flac decoding

我目前正在尝试将 FLAC 编写为 WAV 转码器,作为 C++ 中的练习,我目前正在为 FLAC 格式关于位排序的措辞苦苦挣扎。

这是谈论订购的(小)部分:

FLAC 比特流中使用的所有数字都是整数; 没有浮点表示。 所有数字都是大端编码的。 除非另有说明,否则所有数字均无符号。

这是否适用于位排序以及字节排序? 更具体地说,如果我读取一个 7 位的值,我会得到最重要的第 1 位吗?

除非您使用带有位域的struct (这是避免这种情况的好理由),否则位顺序永远不会成为问题。

此外,您一次只能读取一个字节的数据。 如果要从一个字节中读取 7 位,则需要对字节值应用位掩码。

例如,如果一个字节在高位中包含一个值,在低位 7 位中包含另一个值,您将按如下方式提取它们:

field1 = (byte & 0x80) >> 7;
field2 = byte & 0x7f;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM