Как создать функцию, которая преобразует число в биективный шестнадцатеричный?

Может быть, я не достаточно хорош в математике, но у меня проблема с преобразованием числа в чисто алфавитныйБиективный шестнадцатеричный так же, как это делают Microsoft Excel / OpenOffice Calc.

Вот версия моего кода, но она не дала мне нужный вывод:

    var toHexvg = function(a){
     var x='';
     var let="_abcdefghijklmnopqrstuvwxyz";
     var len=let.length;
     var b=a;
     var cnt=0;
     var y = Array();
     do{
      a=(a-(a%len))/len;
      cnt++;
     }while(a!=0)
     a=b;
     var vnt=0;
     do{
      b+=Math.pow((len),vnt)*Math.floor(a/Math.pow((len),vnt+1));
      vnt++;
     }while(vnt!=cnt)
     var c=b;
     do{
      y.unshift( c%len );
      c=(c-(c%len))/len;
     }while(c!=0)
     for(var i in y)x+=let[y[i]];
     return x;
    }

Лучший результат моих усилий может быть:a b c d ... y z ba bb bc - хотя не фактический код выше. Предполагаемый результат должен бытьa b c ... y z aa ab ac ... zz aaa aab aac ... zzzzz aaaaaa aaaaabВы получите картину.

По сути, моя проблема больше связана с выполнением математики, а не с функцией. В конечном счете, мой вопрос: как выполнить математику в шестнадцатеричном преобразовании до бесконечности, как в Microsoft Excel.

И, если возможно, исходный код, заранее спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос