Since base32 is not very widely adopted, the question of notation—which characters to use to represent the 32 digits—is not as settled as in the case of more well-known numeral systems (such as hexadecimal), though RFCs and unofficial and de-facto standards exist.
This is an example of a Base32 representation using the previously described 32-character set (IPFS CIDv1 in Base32 upper-case encoding): BAFYBEICZSSCDSBS7FFQZ55ASQDF3SMV6KLCW3GOFSZVWLYARCI47BGF354 "Extended hex" base 32 or base32hex,[3] another scheme for base 32 per RFC 4648 §7, extends hexadecimal in a more natural way: Its lower half is identical with hexadecimal, and beyond that, base32hex simply continues the alphabet through to the letter V. This scheme was first proposed by Christian Lanctot, a programmer working at Sage software, in a letter to Dr. Dobb's magazine in March 1999[4] as part of a suggested solution for the Y2K bug.
It also retains hexadecimal's property of preserving bitwise sort order of the represented data, unlike RFC 4648's §6 base32, or base64.
[c] Changing the Base32 alphabet, all alternative standards have similar combinations of alphanumeric symbols.
Another alternative design for Base32 is created by Douglas Crockford, who proposes using additional characters for a mod-37 checksum.
An earlier form of base 32 notation was used by programmers working on the Electrologica X1 to represent machine addresses.
See Geohash algorithm, used to represent latitude and longitude values in one (bit-interlaced) positive integer.
[9] The base32 representation of Geohash uses all decimal digits (0–9) and almost all of the lower case alphabet, except letters "a", "i", "l", "o", as shown by the following character map: Before NVRAM became universal, several video games for Nintendo platforms used base 31 numbers for passwords.
These systems omit vowels (except Y) to prevent the game from accidentally giving a profane password.
However, two Base32 digits correspond to ten bits, which can encode (32 × 32 =) 1,024 values, with obvious applications for orders of magnitude of multiple-byte units in terms of powers of 1,024.
Base32 programs are suitable for encoding arbitrary byte data using a restricted set of symbols that can both be conveniently used by humans and processed by computers.
Base32 implementations use a symbol set made up of at least 32 different characters (sometimes a 33rd for padding), as well as an algorithm for encoding arbitrary sequences of 8-bit bytes into a Base32 alphabet.