Reference articles on history, science, culture and more
Encyclopedia

Base36

Encoding for a sequence of byte values using 36 printable characters

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 (the lowercase ISO basic Latin alphabet).

Each Base36 digit contains log2(36) ≈ 5.17 bits of information, so six bits is sufficient to represent each digit. Base36 numbers can also be expanded to pairs of senary (base 6) digits.

01Conversion

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 "1Y2P0IJ32E8E7" in base-36. Similarly, the 32-bit signed integer maximum value of "2147483647" is "ZIK0ZJ" in base-36.

Standard implementations

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

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

Java SE supports conversion from/to String to different bases from 2 up to 36. For example, and

Just like Java, JavaScript also supports conversion from/to String to different bases from 2 up to 36.

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, and conversions from string encoded in different bases from 2 up to 36 using the built-in strconv.ParseInt(), and strconv.ParseUint() functions.

Python allows conversions of strings from base 2 to base 36.

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

Watch videos about Base36Explainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Base36, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.