�꺢������ʤΤǡ�

�ʤ�����ԥ塼�����ϣ���ˡ�ǡ��ʹ֤Ϥ����Ǥʤ��Τ� - ���������
�ºݤˤϡ�����ˡ��������ϩ��꤬����ץ���ä��Τǡ� ���ߤΥ���ԥ塼�����ϡʤۤȤ�ɡˣ���ˡ����Ѥ��Ƥ���ΤǤ���

�¤Ϥ⤦�����ͳ�����äơ�����ϡִ�����Ѵ�����ץ������ϴ�ñ�˽񤱤뤫��ס�

����10�ʿ��Ƿ׻������ꡢ10�ʿ������Ϥ�2�ʿ����Ѵ����ơ��黻�θ�2�ʿ���10�ʿ����Ѵ����ƽ��Ϥ���������֤����ʤ��ΤǤ��͡�

���Τ�������ηäϡ��¤Ϻǽ餫�餽�����ä��Ȥ�������Ȥ��ʤ��餽���ʤäƤ��ä��褦�ǡ�ENIAC������ˡ��ȤäƤ����Τ�ͭ̾�Ǥ��������ƺ��Ǥ��������ư�������� BCD (Binary Coded Decimal)�Ȥ��äƤ�����10�ʿ�������ɽ����Ȥ����Ȥ�����ޤ����ʤ�BCD��ɬ�פʤΤ��Ͻ���Ȥ��ޤ�:)

�ǡ����ꡣ�ʲ��� JavaScript �Ǵ���Ѵ�����ץ���������Ǥ���

�� ��ˡ��

Source

var numchars = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');

var div = function(n, d){ // javascript����ư�������黻�����ʤ��Τ�
    n -= n % d;
    return n / d;
};

integer2string = function(int, base){
    // ���顼�����å�
    int  *= 1;  // ������
    base *= 1;  // ditto
    if (!int) return '0';
    if (base < 2)  throw ['base ', base, ' is too small'].join('');
    if (base > 36) throw ['base ', base, ' is too large'].join('');
    if (!base) base = 10;
    // �º�ȤϤ������
    var chars = [];
    while (int){
        chars.push(numchars[ int % base ]);
        int = div(int, base);
    }
    return chars.reverse().join('');
};

var char2num = (function(chars){
    var result = {};
    for (var i = 0, l = chars.length; i < l; i++) result[chars[i]] = i;
    return result;
})(numchars);

string2integer = function(str, base){
    // ���顼�����å�
    base *= 1;  // ������
    if (base < 2)  throw ['base ', base, ' is too small'].join('');
    if (base > 36) throw ['base ', base, ' is too large'].join('');
    if (!base) base = 10;
    // �º�ȤϤ������
    var chars =
        str.toLowerCase()
           .replace(/[^0123456789abcdefghijklmnopqrstuvwxyz]/g, '')
           .split('');
    var int = 0;
    for(var i = 0, l = chars.length; i < l; i++){
        var digit = char2num[chars[i]];
        if (digit >= base) throw chars[i] + ' is out of range';
        int *= base;
        int += char2num[chars[i]];
    }
    return int;
};

10�ʾ�ο��ϥ���ե��٥åȤ�ɽ�����Ƥ��ޤ����ʤΤ��б����Ƥ���Τ�2-36�ʿ��Ȥ������Ȥˤʤ�ޤ���C��strtol()��Ʊ���Ǥ���

�������Ӿ�����̤�б����������б������Ȥ������Ȥ�:)

�¤� string2integer �����ϡ�JavaScript �ˤ� parseInt()�Ȥ������Τ�Τ��Ф���Ȥ߹��ߴؿ�������ޤ��������ǤϤ����Ƽ��ؤ��ȯ�����Ƥ���ޤ���

Enjoy!

Dan the JavaScripter