将数字四舍五入到JavaScript中最接近的幂

我们需要编写一个JavaScript函数,该函数接受一个数字并返回一个数字,该数字可以表示为最接近输入数字的2的幂。

例如:如果输入数字为145。

然后输出应该是128,因为145是最接近于128的数字,对于n的某个整数值,它可以表示为2 ^ n。

示例

为此的代码将是-

const num = 145;
const nearestPowerOfTwo = num => {
   // dealing only with non negative numbers
   if(num < 0){
      num *= -1;
   }
   let base = 1;
   while(base < num){
      if(num - base < Math.floor(base / 2)){
         return base;
      };
      base *= 2;
   };
   return base;
};
console.log(nearestPowerOfTwo(num));

输出结果

控制台中的输出-

128