用 JavaScript 交换十进制数的相邻二进制位以产生另一个十进制数


问题

我们需要编写一个接收数字的 JavaScript 函数。

我们的函数应迭代数字的二进制等效项并交换其相邻位以构建新的二进制。最后,我们的函数应返回新二进制的十进制等效项。

示例

以下是代码 -

 现场演示

const num = 13;
const swapBits = (num) => {
   let arr = num.toString(2).split('');
   if(arr.length % 2){
      arr.unshift(0);
   }
   for(let i = 0; i < arr.length - 1; i = i + 2) {
      [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
   }
   return +('0b' + arr.join(''));
}
console.log(swapBits(num));

输出

14

更新于: 20-Apr-2021

129 次浏览

职业起步

通过完成课程获得认证

开始
广告