<tfoot id='ZUHb3'></tfoot>

        <small id='ZUHb3'></small><noframes id='ZUHb3'>

        • <bdo id='ZUHb3'></bdo><ul id='ZUHb3'></ul>
        <legend id='ZUHb3'><style id='ZUHb3'><dir id='ZUHb3'><q id='ZUHb3'></q></dir></style></legend>
        <i id='ZUHb3'><tr id='ZUHb3'><dt id='ZUHb3'><q id='ZUHb3'><span id='ZUHb3'><b id='ZUHb3'><form id='ZUHb3'><ins id='ZUHb3'></ins><ul id='ZUHb3'></ul><sub id='ZUHb3'></sub></form><legend id='ZUHb3'></legend><bdo id='ZUHb3'><pre id='ZUHb3'><center id='ZUHb3'></center></pre></bdo></b><th id='ZUHb3'></th></span></q></dt></tr></i><div id='ZUHb3'><tfoot id='ZUHb3'></tfoot><dl id='ZUHb3'><fieldset id='ZUHb3'></fieldset></dl></div>
      1. 实现像 A,B,C... AA,AB,... AAA... 这样的编号方案,类

        时间:2023-08-07
        • <legend id='wsBZh'><style id='wsBZh'><dir id='wsBZh'><q id='wsBZh'></q></dir></style></legend>
                <tbody id='wsBZh'></tbody>

              <small id='wsBZh'></small><noframes id='wsBZh'>

                <i id='wsBZh'><tr id='wsBZh'><dt id='wsBZh'><q id='wsBZh'><span id='wsBZh'><b id='wsBZh'><form id='wsBZh'><ins id='wsBZh'></ins><ul id='wsBZh'></ul><sub id='wsBZh'></sub></form><legend id='wsBZh'></legend><bdo id='wsBZh'><pre id='wsBZh'><center id='wsBZh'></center></pre></bdo></b><th id='wsBZh'></th></span></q></dt></tr></i><div id='wsBZh'><tfoot id='wsBZh'></tfoot><dl id='wsBZh'><fieldset id='wsBZh'></fieldset></dl></div>
              • <tfoot id='wsBZh'></tfoot>

                  <bdo id='wsBZh'></bdo><ul id='wsBZh'></ul>

                  本文介绍了实现像 A,B,C... AA,AB,... AAA... 这样的编号方案,类似于将数字转换为 radix26的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  可能重复:
                  Xnary(类似于二进制但不同)计数

                  在 JavaScript 中,我想在 JavaScript 中实现一个编号方案,以便 1 是 A,2 是 B,....26 是 Z,27 是 AA,28 是 AB .....

                  In JavaScript, I want to implement a numbering scheme in JavaScript so that 1 is A, 2 is B, .... 26 is Z, 27 is AA, 28 is AB .....

                  为此,代码如下:

                  function convertor(n){
                  
                       var x = n-1,
                           baseCharCode = "A".charCodeAt(0);
                  
                       var arr = x.toString(26).split(''),
                           len = arr.length;
                  
                       return arr.map(function(val,i){
                           val = parseInt(val,26);
                  
                           if( (i === 0) && ( len > 1)){
                                val = val-1;
                           }
                  
                           return String.fromCharCode(baseCharCode + val);
                       }).join('');
                  }
                  

                  它似乎工作正常,但有什么优化它的想法或其他实现方式吗?

                  It seems to work fine, but any ideas to optimize it or another way of implementing it ?

                  推荐答案

                  这个系统类似于Hexavigesimal(以 A = 0 开头)并称为双射 base-26(它没有 0).您可以使用标准的基本转换算法来转换它,如下所示:

                  This system is similar to Hexavigesimal (which starts with A = 0) and is called bijective base-26 (it has no 0). You can convert it using standard base-conversion arithmetic like this:

                  function toDecimal(str) {
                      var decimal = 0;
                      var letters = str.split(new RegExp());
                  
                      for(var i = letters.length - 1; i >= 0; i--) {
                          decimal += (letters[i].charCodeAt(0) - 64) * (Math.pow(26, letters.length - (i + 1)));
                      }
                  
                      return decimal;
                  }
                  

                  基本上,您从十六进制转换为以 10 为底,如下所示.假设您必须字符串AB".你所拥有的是:

                  Essentially, you convert from hexavigesimal to base 10 as follows. Assume you have to string "AB". What you have then is:

                  1 0 (positions)
                  ---
                  A B
                  + +
                  | |
                  | +----> 2 * (26 ^ 0) +
                  +------> 1 * (26 ^ 1)
                         = 28
                  

                  这给你 28.

                  另一个例子:

                  2 1 0 (positions)
                  A B C
                  + + +
                  | | |
                  | | +----> 3 * (26 ^ 0) +
                  | +------> 2 * (26 ^ 1) +
                  +--------> 1 * (26 ^ 2)
                             = 731
                  

                  这篇关于实现像 A,B,C... AA,AB,... AAA... 这样的编号方案,类似于将数字转换为 radix26的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:将 io.BytesIO 转换为 io.StringIO 以解析 HTML 页面 下一篇:.slice(0) 在这里有什么意义?

                  相关文章

                  最新文章

                • <legend id='Qabdy'><style id='Qabdy'><dir id='Qabdy'><q id='Qabdy'></q></dir></style></legend>
                • <tfoot id='Qabdy'></tfoot>

                  <i id='Qabdy'><tr id='Qabdy'><dt id='Qabdy'><q id='Qabdy'><span id='Qabdy'><b id='Qabdy'><form id='Qabdy'><ins id='Qabdy'></ins><ul id='Qabdy'></ul><sub id='Qabdy'></sub></form><legend id='Qabdy'></legend><bdo id='Qabdy'><pre id='Qabdy'><center id='Qabdy'></center></pre></bdo></b><th id='Qabdy'></th></span></q></dt></tr></i><div id='Qabdy'><tfoot id='Qabdy'></tfoot><dl id='Qabdy'><fieldset id='Qabdy'></fieldset></dl></div>
                    <bdo id='Qabdy'></bdo><ul id='Qabdy'></ul>

                      <small id='Qabdy'></small><noframes id='Qabdy'>