我有一个头可以是任意数量的位,并且有一个名为ByteAlign的变量,它是通过从文件开头的文件位置减去当前文件位置计算出来的,这个变量的一点是将头部填充到下一个完整的字节。所以如果头部占据57位,则ByteAlign变量需要长度为7位,以将头部填充到总共64位或8个字节。读取下一个字节的位数
解决方案不起作用:
变量%8 - 8,结果是答案,但负。
8%变量;这是完全不准确的,并给出29的答案,这是明显错误的,它应该是最大的数字是7.
我到底该怎么做?
我有一个头可以是任意数量的位,并且有一个名为ByteAlign的变量,它是通过从文件开头的文件位置减去当前文件位置计算出来的,这个变量的一点是将头部填充到下一个完整的字节。所以如果头部占据57位,则ByteAlign变量需要长度为7位,以将头部填充到总共64位或8个字节。读取下一个字节的位数
解决方案不起作用:
变量%8 - 8,结果是答案,但负。
8%变量;这是完全不准确的,并给出29的答案,这是明显错误的,它应该是最大的数字是7.
我到底该怎么做?
这应该工作:
(8 - (Variable & 7)) & 7
你需要适应n
位字节数为(n + 7)/8
。
其中的位数是8 * ((n + 7)/8)
。
因此填充量为8 * ((n + 7)/8) - n
。