DRYな備忘録

Don't Repeat Yourself.

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

追記

いやーインターネッツはやっぱり素晴らしい(白目

以下原文

いやーもっといい方法あるっぽいけど

function decimal2binary(dec, padOrder) {
    var base = 2;
    var pool = [];
    var order = 0;
    while ((dec - Math.pow(base, order + 1) > 0)) {
        order++;
    }
    for (var i = order; i > -1; i--) {
        if (dec - Math.pow(base, i) < 0) {
            pool.push(0);
        } else {
            dec = dec - Math.pow(base, i);
            pool.push(1);
        }
    }
    order++;
    var count = 0;
    while (count < padOrder - order) {
        pool.unshift(0);
        count++;
    }
    return pool.join("");
}

console.log(decimal2binary(35));
console.log(decimal2binary(9));
console.log(decimal2binary(9, 6));

結果

% node decimal2binary.js
100011
1001
001001
%