Golang程序将下一个2的幂次取整。

例子

例如,n = 12 =>下一个2的幂为16。

例如,n = 20 =>下一个2的幂为32。

解决这个问题的方法

步骤1-定义方法,该方法接受数字n

步骤2-迭代k:= 1直到k <n。

步骤3-在循环中,计算k << 1。

步骤4-最后,返回k。

示例

package main
import "fmt"
func NextPowOf2(n int) int{
   k := 1
   for ;k < n; {
      k = k << 1
   }
   return k
}
func main(){
   fmt.Printf("Round of highest power of 2 for %d is %d.\n", 20, NextPowOf2(20))
   fmt.Printf("Round of highest power of 2 for %d is %d.\n", 16, NextPowOf2(16))
   fmt.Printf("Round of highest power of 2 for %d is %d.\n", 131, NextPowOf2(131))
}
输出结果
Round of highest power of 2 for 20 is 32.
Round of highest power of 2 for 16 is 16.
Round of highest power of 2 for 131 is 256.