Base62

Benchmark created on


Preparation HTML

<script>
  var ALPHABET = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  
  var divmod = function(val, base) {
      return [~~ (val / base), val % base];
      };
  
  var encodeSplice = function(n, alphabet) {
      var r = [],
          _divmod, b = alphabet.length;
  
      while (n > 0) {
        _divmod = divmod(n, b);
        r.splice(0, 0, alphabet[_divmod[1]]);
        n = _divmod[0];
      }
  
      return r.join('');
      };
  
  var encodeReverse = function(n, alphabet) {
      var r = [],
          _divmod, b = alphabet.length;
  
      while (n > 0) {
        _divmod = divmod(n, b);
        r.push(alphabet[_divmod[1]]);
        n = _divmod[0];
      }
  
      return r.reverse().join('');
      };
  
  var decode = function(s, alphabet) {
      var n = 0,
          i = 0,
          b = alphabet.length,
          slen = s.length;
  
      for (; i < slen; i++) {
        n = (n * b) + alphabet.indexOf(s[i]);
      }
      return n;
      };
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Encode Splice
encodeSplice(1, ALPHABET);
encodeSplice(1250, ALPHABET);
encodeSplice(7325736252748, ALPHABET);
 
ready
Encode Reverse
encodeReverse(1, ALPHABET);
encodeReverse(1250, ALPHABET);
encodeReverse(7325736252748, ALPHABET);
 
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.