参考:https://www.52pojie.cn/thread-1236433-1-1.html
题目:
对于如下定义的段:name segment如果段中数据占N个字节,则程序加载之后,该段实际占有的空间为
网上有两种答案:
-
(N/16+1)*16
-
ceil(N/16)*16
这两种都是正确的。且听我解释,这是因为二者最后得出的结果是一样的!
第一种的(N/16+1)*16,是向下取整!
第二种的 :ceil(N/16)*16 是向上取整!
就一些例子演示:
第一种:(N/16+1)*16
16/16=1,则实际占有的空间为0+16
6/16<1,取0*16,则实际占有的空间为0+16
26/16<1,1.625,取1*16,则实际占有的空间为16+16
第二种:ceil(N/16)*16
16/16=1,则实际占有的空间为16
6/16<1,取1*16,则实际占有的空间为16
26/16<1,1.625,取2*16,则实际占有的空间为32