Как создать функцию, которая преобразует число в биективный шестнадцатеричный?
Может быть, я не достаточно хорош в математике, но у меня проблема с преобразованием числа в чисто алфавитныйБиективный шестнадцатеричный так же, как это делают 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.
И, если возможно, исходный код, заранее спасибо.