读取到下一个字节的舍入位数

时间:2014-12-04 01:48:23

标签: c ffmpeg

我有一个可以是任意位数的标题,并且有一个名为ByteAlign的变量,它通过从文件开头的文件位置减去当前文件位置来计算,该变量的点是将标题填充到下一个完整字节。因此,如果标头占用57位,则ByteAlign变量的长度需要为7位,以便将标头填充为64位,即8位。

无法解决的解决方案:

变量%8 - 8,结果是答案,但是否定。

8%变量;这是完全不准确的,并给出了像29这样明显错误的答案,它应该是7的最大数字。

我到底该怎么做?

2 个答案:

答案 0 :(得分:2)

  1. 您需要容纳n位的字节数为(n + 7) / 8

  2. 此位数为8 * ((n + 7) / 8)

  3. 填充量因此为8 * ((n + 7) / 8) - n

答案 1 :(得分:2)

这应该有效:

(8 - (Variable & 7)) & 7