
10進数から2進数 2進数から10進数への変換 JavaScript
2020-07-125 min read
目次
概要
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 までは問題なく動きました。
Recommends
New Posts
Hot posts!
Date
Tags
Author