Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptを使用して、小数の隣接する2進ビットを交換して別の小数を生成する


問題

数値を取り込むJavaScript関数を作成する必要があります。

この関数は、数値に相当する2進数を反復処理し、隣接するビットを交換して新しい2進数を作成する必要があります。そして最後に、関数は新しいバイナリに相当する10進数を返す必要があります。

以下はコードです-

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

  1. JavaScriptを使用した配列内の山​​の最大長

    山のサブシーケンス 次のプロパティが当てはまる場合、(arrの)サブアレイサブを山と呼びます- =3 sub [0]

  2. C#を使用した2進数から10進数

    2進数を10進数に変換するために、ここではwhileループを使用して、入力である2進数の余りを見つけました。その後、余りに基本値を掛けて加算します。 これは私が小数値を取得するために行ったことです- while (val > 0) {    remainder = val % 10;    myDecimal = myDecimal + remainder* baseVal;    val = val / 10;    baseVal = baseVal * 2; } 例 C#で2進数を10進数に変換する完