Tal vez no soy tan bueno en matemáticas, pero estoy teniendo un problema al convertir un número en puro alfabético Bijective Hexavigesimal al igual que lo hace Microsoft Excel/OpenOffice Calc.¿Cómo crear una función que convierta un Número a un Bijetivo Hexavigesimal?
Aquí está una versión de mi código, pero no me dio la salida que necesitaba:
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; }
La mejor salida de mis esfuerzos pueden conseguir es: a b c d ... y z ba bb bc
- aunque no el código real anteriormente. La salida prevista se supone que es a b c ... y z aa ab ac ... zz aaa aab aac ... zzzzz aaaaaa aaaaab
, se obtiene la imagen.
Básicamente, mi problema está más en hacer las "matemáticas" que en la función. En definitiva, mi pregunta es: cómo hacer las Matemáticas en conversión Hexavigesimal, hasta un [supuesto] infinito, al igual que Microsoft Excel.
Y si es posible, un código fuente, gracias de antemano.
'aa' no tiene sentido. Es '00'. El "número" después de 'z' es' ba', por lo que su salida parece ser correcta. ¿O es '_' tu' 0', que parece un poco extraño? –
uhm, perdón por el código de muestra, supongo que no debería haberlo publicado, creo que hizo que expresar mi pregunta fuera más complicado, ahaha ... Pero, supongo que mi conclusión es que necesito un código que emita el yz aa ab y no yx ba bb ... Y se podría decir que "_" es el 0, pero la situación que necesito es que ninguna parte de la salida contenga ningún '_'... ^^ hmmm – GheloAce
^[correcciones]: Y se podría decir '\ _' (guión bajo) es el 0, pero la situación que necesito es que ninguna parte del resultado NO contenga ningún '\ _' (guión bajo) ... – GheloAce