c - 计算填充字节数的最佳方法是什么

标签 c bit-manipulation padding

在 C 语言中计算需要是 32 位倍数的 8 位数据的填充量的最有效方法是什么?

目前我是这样做的:

pad = (4-size%4)%4;

最佳答案

只要优化编译器对 %4 使用位掩码而不是除法,我认为您的代码可能相当不错。这可能是一个轻微的改进:

// only the last 2 bits (hence & 3) matter
pad = (4 - (size & 3)) & 3;

但同样,优化编译器可能足够聪明,无论如何都可以将您的代码减少到这个程度。我想不出更好的了。

关于c - 计算填充字节数的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844983/

相关文章:

c - 为什么允许 `typedef struct x x`?

c - 如何知道C中的行尾

c++ - 这段代码如何计算一个数的奇偶性?

byte - 使用按位运算符判断一个数字是否为 2 的幂 [O(1)]

c - 重建开始时的 IAR 定制构建

计数位设置到 32 位类型的给定位置

android - 负填充的影响

css - 下拉菜单填充/边距问题

css - 为什么图像周围的 1px 填充在主要浏览器中呈现不同?

c - 如何从C中的字符中删除空行?