码迷,mamicode.com
首页 > 其他好文 > 详细

round_up() 计算8字节对齐后的大小,或向上取最近的2的幂次

时间:2020-07-28 13:51:52      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:end   mamicode   字节   for   signed   std   alignment   round   include   

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的幂次

标签:end   mamicode   字节   for   signed   std   alignment   round   include   

原文地址:https://www.cnblogs.com/jackie-astro/p/13390110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!