Base 32
From Wikipedia, the free encyclopedia
Numeral systems by culture | |
---|---|
Hindu-Arabic numerals | |
Western Arabic Eastern Arabic Khmer |
Indian family Brahmi Thai |
East Asian numerals | |
Chinese Japanese |
Korean |
Alphabetic numerals | |
Abjad Armenian Cyrillic Ge'ez |
Hebrew Ionian/Greek Sanskrit |
Other systems | |
Attic Etruscan Urnfield Roman |
Babylonian Egyptian Mayan |
List of numeral system topics | |
Positional systems by base | |
Decimal (10) | |
2, 4, 8, 16, 32, 64 | |
3, 9, 12, 24, 30, 36, 60, more… | |
Base 32 or duotrigesimal is a positional notation using a base of 32. The twenty-six letters A-Z and six digits 2-7 can be used to provide the 32 separate symbols needed.
Contents |
[edit] Software
In computing terminology, Base32 (spelled without a space) is an alternative to Base64 as a notation for encoding arbitrary byte data using a restricted set of symbols which can be conveniently used by humans and processed by old computer systems which only recognize restricted character sets.
[edit] Advantages
Base32 has two main advantages over Base64:
- The resulting character set is all one case (usually represented as uppercase), which can often be beneficial when using a case-insensitive filesystem, or human memory.
- The result can be included in a URL without encoding any characters.
[edit] Base32 alphabet
It uses an alphabet of A–Z, followed by 2–7 (thus "2" actually has a numerical value of 26). 0 and 1 are skipped due to their similarity with the letters O and I.
Value | Symbol | Value | Symbol | Value | Symbol | Value | Symbol |
---|---|---|---|---|---|---|---|
0 | A | 9 | J | 18 | S | 27 | 3 |
1 | B | 10 | K | 19 | T | 28 | 4 |
2 | C | 11 | L | 20 | U | 29 | 5 |
3 | D | 12 | M | 21 | V | 30 | 6 |
4 | E | 13 | N | 22 | W | 31 | 7 |
5 | F | 14 | O | 23 | X | ||
6 | G | 15 | P | 24 | Y | ||
7 | H | 16 | Q | 25 | Z | ||
8 | I | 17 | R | 26 | 2 | pad | = |
[edit] Alternate versions
An earlier form of base 32 notation was used by programmers working on the Electrologica X1 to represent machine addresses. The "digits" were represented as decimal numbers from 0 to 31. For example, 12-16 would represent the machine address 400.
Another alternative design for Base32 is created by Douglas Crockford, who proposes using additional characters for a checksum.[1]
Value | Encode Digit | Decode Digit | Value | Encode Digit | Decode Digit |
---|---|---|---|---|---|
0 | 0 | O o 0 | 16 | G | g G |
1 | 1 | I i L l 1 | 17 | H | h H |
2 | 2 | 2 | 18 | J | j J |
3 | 3 | 3 | 19 | K | k K |
4 | 4 | 4 | 20 | M | m M |
5 | 5 | 5 | 21 | N | n N |
6 | 6 | 6 | 22 | P | p P |
7 | 7 | 7 | 23 | Q | q Q |
8 | 8 | 8 | 24 | R | r R |
9 | 9 | 9 | 25 | S | s S |
10 | A | a A | 26 | T | t T |
11 | B | b B | 27 | V | v V |
12 | C | c C | 28 | W | w W |
13 | D | d D | 29 | X | x X |
14 | E | e E | 30 | Y | y Y |
15 | F | f F | 31 | Z | z Z |
[edit] Video games
Before NVRAM became universal, several video games for Nintendo platforms use base 32 numbers for passwords. These systems omit vowels to prevent the game from accidentally giving a profane password. Thus, the characters are generally some minor variation of the following set: 0-9, B, C, D, F, G, H, J, K, L, M, N, P, Q, R, S, T, V, W, X, Y, Z, and some punctuation mark. Games known to use such a system include Mario Is Missing!, Mario's Time Machine, Tetris Blast, and The Lord of the Rings (Super NES).