如何计算不小于给定数的最小的2整数次方幂?
dengxf同学提到的一个问题,想了一下,想到的一个算法:
令为已知量,为目标量,为迭代轮数,
- 令 ,
- 对于 右移 位 的情形,执行下列操作,直到此条件不符合为止:
y与前述结果相与;累进。 - 累进。
原理:第(2)步的循环将除最高位的所有0均置位。最后一步(3)修正这一值。
共 2 篇文章。
dengxf同学提到的一个问题,想了一下,想到的一个算法:
令为已知量,为目标量,为迭代轮数,
原理:第(2)步的循环将除最高位的所有0均置位。最后一步(3)修正这一值。
I have an idea: let we have “a” is the number to determine.
return ( (0 == (a & (a-1))) && (a > 0))
Despite the style of the code, is there some better solution? Note that a is a native integer type (say, int, long, long long, etc).