向下舍入:
先从向下舍入说起,111以10为单位向下舍入为110,以100为单位舍入为100,从中不难发现所谓向下舍入,就是把最后几位数字强制变为0.,所以以4kbs为单位进行向下舍入为:t &= 0xfffff000;
向上舍入:
以4KB为例,向上舍入,先加0xfff判断进位,再向下舍入操作:t = (t + 0xfff) & 0xfffff000;
十进制数不能用与运算舍入,由于每位刻度为2,所以为2n刻度舍入,首先想到的十进制数舍入方法 t = (t / 10) * 10;可将其改进写成i = i - (i % 100);无论如何非2n为单位进行舍入处理,必将使用除运算指令,是cpu最不好处理的指令之一,所以计算要花费较长的时间,而“与”命令是所有cpu指令中速度最快的指令之一,与除相比要快10到100倍。
因此内存配按2n进行分配,避免内存分配时频繁的除运算指令,提高速度。