Base32: Difference between revisions
m Stubsensor cleanup project; you can help! |
|||
Line 94: | Line 94: | ||
| 15 || F || f F || 31 || Z || z Z |
| 15 || F || f F || 31 || Z || z Z |
||
|} |
|} |
||
</br> |
|||
<p>Triacontakaidecimal is another alternative design for Base32, that extends Hexadecimal in a more natural way, steming from a 32 sided triacontakaidigon. Note the difference between 0, O and 1, I. They are similar, but still distinguishable in ansii.</p> |
|||
<div style="text-align: center; margin: 0em 0em 1em 1em;"> |
|||
<table border="1" cellpadding="3" cellspacing="0" class="wikitable"> |
|||
<tr> |
|||
<th>Triacontakia</th> |
|||
<th>Binary</th> |
|||
<th>Decimal</th> |
|||
</tr> |
|||
<tr> |
|||
<td>0</td> |
|||
<td>00000000</td> |
|||
<td>0</td> |
|||
</tr> |
|||
<tr> |
|||
<td>1</td> |
|||
<td>00000001</td> |
|||
<td>1</td> |
|||
</tr> |
|||
<tr> |
|||
<td>2</td> |
|||
<td>00000010</td> |
|||
<td>2</td> |
|||
</tr> |
|||
<tr> |
|||
<td>3</td> |
|||
<td>00000011</td> |
|||
<td>3</td> |
|||
</tr> |
|||
<tr> |
|||
<td>4</td> |
|||
<td>00000100</td> |
|||
<td>4</td> |
|||
</tr> |
|||
<tr> |
|||
<td>5</td> |
|||
<td>00000101</td> |
|||
<td>5</td> |
|||
</tr> |
|||
<tr> |
|||
<td>6</td> |
|||
<td>00000110</td> |
|||
<td>6</td> |
|||
</tr> |
|||
<tr> |
|||
<td>7</td> |
|||
<td>00000111</td> |
|||
<td>7</td> |
|||
</tr> |
|||
<tr> |
|||
<td>8</td> |
|||
<td>00001000</td> |
|||
<td>8</td> |
|||
</tr> |
|||
<tr> |
|||
<td>9</td> |
|||
<td>00001001</td> |
|||
<td>9</td> |
|||
</tr> |
|||
<tr> |
|||
<td>A</td> |
|||
<td>00001010</td> |
|||
<td>10</td> |
|||
</tr> |
|||
<tr> |
|||
<td>B</td> |
|||
<td>00001011</td> |
|||
<td>11</td> |
|||
</tr> |
|||
<tr> |
|||
<td>C</td> |
|||
<td>00001100</td> |
|||
<td>12</td> |
|||
</tr> |
|||
<tr> |
|||
<td>D</td> |
|||
<td>00001101</td> |
|||
<td>13</td> |
|||
</tr> |
|||
<tr> |
|||
<td>E</td> |
|||
<td>00001110</td> |
|||
<td>14</td> |
|||
</tr> |
|||
<tr> |
|||
<td>F</td> |
|||
<td>00001111</td> |
|||
<td>15</td> |
|||
</tr> |
|||
<tr> |
|||
<td>G</td> |
|||
<td>00010000</td> |
|||
<td>16</td> |
|||
</tr> |
|||
<tr> |
|||
<td>H</td> |
|||
<td>00010001</td> |
|||
<td>17</td> |
|||
</tr> |
|||
<tr> |
|||
<td>I</td> |
|||
<td>00010010</td> |
|||
<td>18</td> |
|||
</tr> |
|||
<tr> |
|||
<td>J</td> |
|||
<td>00010011</td> |
|||
<td>19</td> |
|||
</tr> |
|||
<tr> |
|||
<td>K</td> |
|||
<td>00010100</td> |
|||
<td>20</td> |
|||
</tr> |
|||
<tr> |
|||
<td>L</td> |
|||
<td>00010101</td> |
|||
<td>21</td> |
|||
</tr> |
|||
<tr> |
|||
<td>M</td> |
|||
<td>00010110</td> |
|||
<td>22</td> |
|||
</tr> |
|||
<tr> |
|||
<td>N</td> |
|||
<td>00010111</td> |
|||
<td>23</td> |
|||
</tr> |
|||
<tr> |
|||
<td>O</td> |
|||
<td>00011000</td> |
|||
<td>24</td> |
|||
</tr> |
|||
<tr> |
|||
<td>P</td> |
|||
<td>00011001</td> |
|||
<td>25</td> |
|||
</tr> |
|||
<tr> |
|||
<td>Q</td> |
|||
<td>00011010</td> |
|||
<td>26</td> |
|||
</tr> |
|||
<tr> |
|||
<td>R</td> |
|||
<td>00011011</td> |
|||
<td>27</td> |
|||
</tr> |
|||
<tr> |
|||
<td>S</td> |
|||
<td>00011100</td> |
|||
<td>28</td> |
|||
</tr> |
|||
<tr> |
|||
<td>T</td> |
|||
<td>00011101</td> |
|||
<td>29</td> |
|||
</tr> |
|||
<tr> |
|||
<td>U</td> |
|||
<td>00011110</td> |
|||
<td>30</td> |
|||
</tr> |
|||
<tr> |
|||
<td>V</td> |
|||
<td>00011111</td> |
|||
<td>31</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
By Caleb Piercy. |
|||
=== Video games === |
=== Video games === |
Revision as of 16:13, 3 May 2007
Part of a series on |
Numeral systems |
---|
List of numeral systems |
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.
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.
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.
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 | = |
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 |
Triacontakaidecimal is another alternative design for Base32, that extends Hexadecimal in a more natural way, steming from a 32 sided triacontakaidigon. Note the difference between 0, O and 1, I. They are similar, but still distinguishable in ansii.
Triacontakia | Binary | Decimal |
---|---|---|
0 | 00000000 | 0 |
1 | 00000001 | 1 |
2 | 00000010 | 2 |
3 | 00000011 | 3 |
4 | 00000100 | 4 |
5 | 00000101 | 5 |
6 | 00000110 | 6 |
7 | 00000111 | 7 |
8 | 00001000 | 8 |
9 | 00001001 | 9 |
A | 00001010 | 10 |
B | 00001011 | 11 |
C | 00001100 | 12 |
D | 00001101 | 13 |
E | 00001110 | 14 |
F | 00001111 | 15 |
G | 00010000 | 16 |
H | 00010001 | 17 |
I | 00010010 | 18 |
J | 00010011 | 19 |
K | 00010100 | 20 |
L | 00010101 | 21 |
M | 00010110 | 22 |
N | 00010111 | 23 |
O | 00011000 | 24 |
P | 00011001 | 25 |
Q | 00011010 | 26 |
R | 00011011 | 27 |
S | 00011100 | 28 |
T | 00011101 | 29 |
U | 00011110 | 30 |
V | 00011111 | 31 |
By Caleb Piercy.
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).
References
- RFC 4648