round_up() 计算8字节对齐后的大小,或向上取最近的2的幂次
Posted jackie-astro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了round_up() 计算8字节对齐后的大小,或向上取最近的2的幂次相关的知识,希望对你有一定的参考价值。
round_up.cpp内容如下:
#include <iostream>
using namespace std;
const int kAlign = 8; // kAlign show be powers of 2, say 2, 4 ,8, 16, 32, ...
const int kAlign16 = 16;
int round_up(unsigned int nBytes) { return ((nBytes)+(kAlign - 1)) & ~(kAlign - 1); }
int round_up16(unsigned int nBytes) { return ((nBytes)+(kAlign16 - 1)) & ~(kAlign16 - 1); }
int main(int argc, char **argv)
{
for (int i = 0; i < 20; ++i)
cout << i << " round up to " << round_up(i) << endl;
for (int i = 0; i < 20; ++i)
cout << i << " round up to (with alignment 16): " << round_up16(i) << endl;
return 0;
}
运行结果如下图所示:
以上是关于round_up() 计算8字节对齐后的大小,或向上取最近的2的幂次的主要内容,如果未能解决你的问题,请参考以下文章