获取比自己大的,最小的8的倍数

     在STL中,内存管理中,要求能够获取内存大小为8的整数倍。利于管理内存,而且在内存操作中以8的倍数操作最为方便。

     比自己大的最小数可以考虑先进行+(8-1)小的数,此时获得的结果肯定比最小的8的倍数大。只需要减去超出的部分,即可获得最小的8的倍数值。超出的部分,(肯定《=(8-1)),置为0。所以操作为:(计算值+(8-1))&~(8-1)=最小的8的倍数。

 

    具体代码为:

const int _ALIGN=8;

int a=30;

int b=(a+_ALIGN-1)&~(_ALIGN-1);

cout<<b<<endl;

cout<<(a+_ALIGN-1)<<endl;

cout<<~(_ALIGN-1)<<endl;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值