2012年9月2日

一些碰上的bit运算

摘要: 今天看到了一段代码,具体是要动态分配一大小不固定的数据分配内存,并且要求这段内存的大小还必需是2^k,所以实际分配的大小就等于把计算出来的数据大小向上取到最接近它的一个2次幂。这段代码做了如下操作:1 a--;2 a |= (a >> 1);3 a |= (a >> 2);4 a |= (a >> 4);5 a |= (a >> 8);6 a |= (a >> 16);7 a++;因为从前没见过,就琢磨了一下原理:我们知道一个数的2进制形式类似于 那么比这个数大并且最接近这个数的2次幂就是2^(k+1),其中k就是最接近MSB(最高有 阅读全文

posted @ 2012-09-02 19:22 cha05 阅读(351) 评论(0) 推荐(0) 编辑

导航