首页 > 其他 > 详细

很有意思的算法

时间:2014-04-19 04:18:20      阅读:433      评论:0      收藏:0      [点我收藏+]

题目:

设计一个函数,接受两个参数,一个为结构体尺寸,一个为对齐字节数,返回对齐后的结构体所占尺寸(首地址偏移量)。

分析:

如果是对8字节对齐,6字节的结构体占用8字节,16字节的结构体占用16字节。第一想法是下面逻辑:

1
2
3
4
5
6
if(!structSize%alignNum){
    return (int)(structSize/alignNum)+1;
}
else{
    return (int)(structSize/alignNum);
}

另外这个逻辑和浮点数的四舍五入很类似

1
return (int)(floatVal+0.5);

所以最简洁写法如下:

1
return ((int)(structSize+alignNum-1)/alignNum)*alignNum;

很有意思的算法,布布扣,bubuko.com

很有意思的算法

原文:http://www.cnblogs.com/aishangxue/p/3673477.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!