如何计算不小于给定数的最小的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)修正这一值。
但是感觉不太好,有没有更好的办法呢?
选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
dengxf同学提到的一个问题,想了一下,想到的一个算法:
令x为已知量,y为目标量,k为迭代轮数,
1: 令y=x-1,k=0
2: 对于 y 右移 2^k 位 > 0的情形,执行下列操作,直到此条件不符合为止:
y与前述结果相与;k累进1。
3: y累进1。
原理:第(2)步的循环将除最高位的所有0均置位。最后一步(3)修正这一值。
但是感觉不太好,有没有更好的办法呢?