数字舍入(内存分配)

向下舍入:
先从向下舍入说起,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进行分配,避免内存分配时频繁的除运算指令,提高速度。

转载于:https://www.cnblogs.com/seebro/archive/2012/11/12/2767044.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值