通过
网络传入的数据包在末尾添加了填充字节以进行对齐。我想跳过这些字节,但数据包大小是可变的,但已知。给定一个数字n
,如何将其四舍五入到下一个 4 字节对齐?
对于任何整数n
和任何步幅k
(均为正数),您可以通过以下方式计算不小于n
k
的最小倍数:
(n + k - 1) / k * k
这利用了积分除法修剪的事实。
另一个版本。 n 是您要下车的数字 4(比如 k)。公式为 = n+k-n%k(其中 % 是模数)
例如(在Unix bc计算器中)
k=4
n=551
n+k-n%k
552
要检查它是否对齐,请执行以下操作:
scale=4
552/4
138.0000