Base36 Explained

Base36 is a binary-to-text encoding that represents binary data in an ASCII string format by translating it into a radix-36 representation. The choice of 36 is convenient in that the digits can be represented using the numerals 0–9 and the letters a-z[1] (the lowercase ISO basic Latin alphabet).

Each base36 digit needs less than 6 bits of information to be represented.

Conversion

Signed 32- and 64-bit integers will only hold at most 6 or 13 base-36 digits, respectively (that many base-36 digits can overflow the 32- and 64-bit integers). For example, the 64-bit signed integer maximum value of "9223372036854775807" is "" in base-36.Similarly, the 32-bit signed integer maximum value of "2147483647" is "" in base-36.

Standard implementations

The C standard library since C89 supports base36 numbers via the strtol and strtoul functions[2]

In the Common Lisp standard (ANSI INCITS 226-1994), functions like parse-integer support a radix of 2 to 36.[3]

Java SE supports conversion from/to String to different bases from 2 up to 36. For example, https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#digit-char-int- and https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#BigInteger-java.lang.String-int-

Just like Java, JavaScript also supports conversion from/to String to different bases from 2 up to 36. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString

PHP, like Java, supports conversion from/to String to different bases from 2 up to 36 using the base_convert function, available since PHP 4.

Go supports conversion to string to different bases from 2 up to 36 using the built-in strconv.FormatInt, and strconv.FormatUint functions,[4] [5] and conversions from string encoded in different bases from 2 up to 36 using the built-in strconv.ParseInt, and strconv.ParseUint functions.[6] [7]

Python allows conversions of strings from base 2 to base 36.[8]

Raku supports base2 to base36 for all its real numeric types with its builtins: base[9] and parse-base.[10]

See also

External links

Notes and References

  1. Web site: ECMAScript® 2026 Language Specification.
  2. Web site: strtol, strtoll — cppreference.com.
  3. Web site: Common Lisp HyperSpec. LispWorks. 3 August 2022.
  4. Web site: Strconv package - strconv - PKG.go.dev.
  5. Web site: Strconv package - strconv - PKG.go.dev.
  6. Web site: Strconv package - strconv - PKG.go.dev.
  7. Web site: Strconv package - strconv - PKG.go.dev.
  8. Web site: Built-in Functions — Python 3.10.0 documentation.
  9. Web site: base.
  10. Web site: routine parse-base.