向下取整的运算称为Floor,用数学符号⌊⌋表示,与之相对的,向上取整的运算称为Ceiling,用数学符号⌈⌉表示。
C语言定义的取整运算既不是Floor也不是Ceiling,无论操作数是正是负总是把小数部分截断(Truncate),所以当操作数为正的时候相当于Floor,当操作符为负的时候相当于Ceiling。
网页分页常用到的一个分页算法
假设变量x和n是两个正整数,我们知道x/n
这个表达式的结果是取Floor,例如x是17,n是4,则结果是4。如果希望结果取Ceiling应该怎么写表达式呢?例如x是17,n是4,则结果是5,而x是16,n是4,则结果是4。
#include <stdio.h>
int main()
{
int x,n;
printf("请输入数字:x n/n");
scanf("%d %d",&x,&n);
printf("x/n 向上取整的结果:%d/n",(x+n-1)/n);
printf("x/n 向上取整方法二:%d/n",(int)(((float)x/(float)n)+0.9));
return 0;
}