javascript – 如何创建一个将数字转换为双向Hexavigesimal的函数?

也许我在数学方面还不够好,但我在将数字转换为纯字母 Bijective Hexavigesimal时遇到问题,就像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 – 虽然不是上面的实际代码.预期的输出是b b … y z aa ab ac … zz aaa aab aac … zzzzz aaaaaa aaaaab,你得到的图片.

基本上,我的问题更多的是做“数学”而不是功能.最终我的问题是:如何在Hexavigesimal转换中进行数学运算,直到[假设]无穷大,就像Microsoft Excel一样.

如果可能的话,还有源代码,提前谢谢.

解决方法

好的,这是我的尝试,假设您希望序列以“a”(代表0)开头并且继续:
a,b,c,...,y,z,aa,ab,ac,zy,zz,aaa,aab,...

这有效,希望有一定道理.时髦的线是因为它在数学上更有意义0用空字符串表示然后“a”将是1,等等.

alpha = "abcdefghijklmnopqrstuvwxyz";

function hex(a) {
  // First figure out how many digits there are.
  a += 1; // This line is funky
  c = 0;
  var x = 1;      
  while (a >= x) {
    c++;
    a -= x;
    x *= 26;
  }

  // Now you can do normal base conversion.
  var s = "";
  for (var i = 0; i < c; i++) {
    s = alpha.charAt(a % 26) + s;
    a = Math.floor(a/26);
  }

  return s;
}

但是,如果您打算按顺序打印它们,那么有更有效的方法.例如,使用递归和/或前缀和东西.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)