C 四舍五入读取到下一字节的位数
我有一个可以是任意位数的头,有一个叫做ByteAlign的变量,通过从文件开头的文件位置减去当前文件位置来计算,这个变量的作用是将头填充到下一个完整的字节。因此,如果报头占用57位,则ByteAlign变量的长度需要为7位,才能将报头填充到总共64位,即8字节 不起作用的解决方案: 变量%8-8,结果是答案,但为负数 8%变量;这是完全不准确的,给出的答案是29,这是明显错误的,最大的数字应该是7 我该怎么做C 四舍五入读取到下一字节的位数,c,ffmpeg,C,Ffmpeg,我有一个可以是任意位数的头,有一个叫做ByteAlign的变量,通过从文件开头的文件位置减去当前文件位置来计算,这个变量的作用是将头填充到下一个完整的字节。因此,如果报头占用57位,则ByteAlign变量的长度需要为7位,才能将报头填充到总共64位,即8字节 不起作用的解决方案: 变量%8-8,结果是答案,但为负数 8%变量;这是完全不准确的,给出的答案是29,这是明显错误的,最大的数字应该是7 我该怎么做 需要容纳n位的字节数为(n+7)/8 其中的位数为8*((n+7)/8) 因此,填充量
n
位的字节数为(n+7)/8
8*((n+7)/8)
8*((n+7)/8)-n
(8 - (Variable & 7)) & 7