10進数から2進数 2進数から10進数への変換 JavaScript

10進数から2進数 2進数から10進数への変換 JavaScript

2020-07-126 min read

目次

  1. 概要
  2. 10進数から2進数
  3. 2進数から10進数
  4. テスト

概要

10進数から2進数、2進数から10進数への変換を行うJavaScriptのコードの紹介。 JSの場合、10進数から2進数への変換はtoStringメソッド。2進数から10進数への変換はparseInt関数を使えばサクッと算出できますが、それらを使わずに実装しました。

10進数から2進数

function intToBin(num) {
  let ans = [];
  if (num === 0) {
    return '0';
  }
  while (num > 0) {
    ans.push(num % 2);
    num = Math.floor(num / 2);
  }
  return ans.reverse().join('');
}

2進数から10進数

function binToInt(str) {
  let nums = str.split('').map(Number).reverse();
  let ans = 0;
  for (let i = 0; i < nums.length; i++) {
    ans += (2 ** i) * nums[i];
  }
  return ans;
}

テスト

const max = 10e5;
for (let i = 0; i < max; i++) {
  console.log(i);
  if (intToBin(i) !== i.toString(2)) {
    console.log('error:1');
    break;
  }
  let bin = i.toString(2);
  if (binToInt(bin) !== parseInt(bin, 2)) {
    console.log('error:2');
    break;
  }
}

10^5 までは問題なく動きました。

Author
githubzennqiita
ただの備忘録です。

※外部送信に関する公表事項