如何获得给定数字的下一个2的幂?
例如,我收到号码138,下一个POT号码是256。
我收到号码112,下一个POT是128。
我需要做一个计算
的算法由于
答案 0 :(得分:15)
一个非常聪明的程序员会查看java.lang.Integer.highestOneBit(int)
方法,并考虑左移运算符(<<
)。
答案 1 :(得分:6)
这是一个非常简单的算法(因为这是家庭作业,你必须自己编写代码):
1
作为第一个候选力量开始。答案 2 :(得分:5)
假设输入是一个正整数,一个非传统的解决方案是查看数字的位模式。从左边找到第一个'1',然后考虑左边那个位的值。