自然数をX進数の文字列に変換するJavaScript

  • 投稿日:
  • by
  • カテゴリ:

// 本体

var d2x=function(d,s){var l=s.length;var x="";while(d>0){x=s.charAt(d%l)+x;d=Math.floor(d/l);}return x;}

var x2d=function(x,s){x=''+x;x=x.trim();var i,j,k=0,l=x.length;for(i=0;i<=l;i++){for(j=0;j<s.length;j++){if(s.charAt(j)==x.charAt(i)){k+=j*Math.pow(s.length,l-i-1);}}}return k;}

 

// 使用例

var seeds = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

d2x(1, seeds);   // => "1"

d2x(9, seeds);   // => "9"

d2x(10, seeds);   // => "a"

d2x(35, seeds);   // => "z"

d2x(36, seeds);   // => "A"

d2x(61, seeds);   // => "Z"

d2x(62, seeds);   // => "10"

 

x2d("1", seeds);   // => 1

x2d("9", seeds);   // => 9

x2d("a", seeds);   // => 10

x2d("z", seeds);   // => 35

x2d("A", seeds);   // => 36

x2d("Z", seeds);   // => 61

x2d("10", seeds);   // => 62