delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

08 Oct 2006

如何计算不小于给定数的最小的2整数次方幂?

dengxf同学提到的一个问题,想了一下,想到的一个算法:

令x为已知量,y为目标量,k为迭代轮数,

1: 令y=x-1,k=0
2: 对于 y 右移 2^k 位 > 0的情形,执行下列操作,直到此条件不符合为止:
y与前述结果相与;k累进1。
3: y累进1。

原理:第(2)步的循环将除最高位的所有0均置位。最后一步(3)修正这一值。

但是感觉不太好,有没有更好的办法呢?