Všichni to používají ale zda vůbec vědí jak se tato textová reprezentace binárních dat v ASCII vlastně převádí?
Binární data převedeme na 24 bitové číslo a to rozdělíme na skupiny o 6 bitech. Níže uvedená tabulka nám pomůže při kódování.
Máme binární data 01 02 03, 24 bit číslo bude 0x010203, to binárně zapsané vypadá 00000001 00000010 00000011. Nyní si data rozdělíme na šesti bitové skupiny, 000000 010000 001000 000011 (desítkové soustavě 1 16 8 3). Podle tabulky získáme AQID.
Pro data nesoudělná čtyřmi to funguje takto:
01 02, bude číslo 0x0102, tedy 00000001 00000010 binárně. Rozdělíme na šesti bitové skupiny, 000000 010000 0010, zprava přidáme nuly a vyjde nám AQI. Aby bylo možné detekovat padding, tak se doplní za každé dva bity znak =.
Příklad 01 02 03 04.
000000 010000 001000 000011 000001 000000
AQIDBA==
Dekódování se provádí opačně, jen se podle počtu znaků = data od konce oříznou. AA== je tedy 000000 00 0000 což je 00.
Hex | Binary | Decimal | Base64 |
---|---|---|---|
00 | 000000 | 0 | A |
01 | 000001 | 1 | B |
02 | 000010 | 2 | C |
03 | 000011 | 3 | D |
04 | 000100 | 4 | E |
05 | 000101 | 5 | F |
06 | 000110 | 6 | G |
07 | 000111 | 7 | H |
08 | 001000 | 8 | I |
09 | 001001 | 9 | J |
0A | 001010 | 10 | K |
0B | 001011 | 11 | L |
0C | 001100 | 12 | M |
0D | 001101 | 13 | N |
0E | 001110 | 14 | O |
0F | 001111 | 15 | P |
10 | 010000 | 16 | Q |
11 | 010001 | 17 | R |
12 | 010010 | 18 | S |
13 | 010011 | 19 | T |
14 | 010100 | 20 | U |
15 | 010101 | 21 | V |
16 | 010110 | 22 | W |
17 | 010111 | 23 | X |
18 | 011000 | 24 | Y |
19 | 011001 | 25 | Z |
1A | 011010 | 26 | a |
1B | 011011 | 27 | b |
1C | 011100 | 28 | c |
1D | 011101 | 29 | d |
1E | 011110 | 30 | e |
1F | 011111 | 31 | f |
20 | 100000 | 32 | g |
21 | 100001 | 33 | h |
22 | 100010 | 34 | i |
23 | 100011 | 35 | j |
24 | 100100 | 36 | k |
25 | 100101 | 37 | l |
26 | 100110 | 38 | m |
27 | 100111 | 39 | n |
28 | 101000 | 40 | o |
29 | 101001 | 41 | p |
2A | 101010 | 42 | q |
2B | 101011 | 43 | r |
2C | 101100 | 44 | s |
2D | 101101 | 45 | t |
2E | 101110 | 46 | u |
2F | 101111 | 47 | v |
30 | 110000 | 48 | w |
31 | 110001 | 49 | x |
32 | 110010 | 50 | y |
33 | 110011 | 51 | z |
34 | 110100 | 52 | 0 |
35 | 110101 | 53 | 1 |
36 | 110110 | 54 | 2 |
37 | 110111 | 55 | 3 |
38 | 111000 | 56 | 4 |
39 | 111001 | 57 | 5 |
3A | 111010 | 58 | 6 |
3B | 111011 | 59 | 7 |
3C | 111100 | 60 | 8 |
3D | 111101 | 61 | 9 |
3E | 111110 | 62 | + |
3F | 111111 | 63 | / |
Za vygenerování tabulky děkuji AI.
Žádné komentáře:
Okomentovat