I computer vivono in binario. Tutti i programmatori conoscono il binario.
Ma le 2**x
basi sono spesso trascurate come non pratiche, mentre hanno belle relazioni con il binario.
Per mostrarti un esempio di una relazione così bella, 19 sarà la mia testimonianza.
19 10011 103 23 13 j
19 è decimale, incluso per chiarezza.
10011 è 19 in binario.
103, in base 4 è fatto a partire da binario in questo modo:
- log2 (4) == 2, ricordiamone due.
- Pad 10011 in modo che abbia un multiplo di 2 lunghezze -> 010011
Prendi le cifre 2 per 2 da sinistra a destra e trattale come numeri binari a 2 cifre:
- 01 -> 1
- 00 -> 0
- 11 -> 3
Fatto , 10011 in base-4 è 103.
Per la base 8, fai lo stesso ma 3 per 3 di log2 (8) = 3.
- Pad 010011
- 010 -> 2
011 -> 3
23, fatto .
Per la base 16, fai lo stesso ma 4 per 4 di log2 (16) = 4.
- Pad 00010011
- 0001 -> 1
0011 -> 3
13, Fatto .
Compito
Dato un numero massimo come input, dovrai generare una tabella
base-ten-i base-two-i base-four-i base-eight-i base-sixteen-i base-thirtytwo-i
per i che va da 0 a n compreso. I numeri binari sono l'epitome del minimo assoluto necessario per funzionare, quindi il tuo codice dovrebbe essere il più corto possibile.
Restrizioni e bonus
Base-dieci -> binario e binario -> Base-dieci integrati sono considerati scappatoie come Base-a -> Base-b lo sono.
Se si generano tutte le
2**i
basi (per i> 2) utilizzando le relazioni sopra menzionate si ottiene un*0.6
bonus, ma sono consentite conversioni di base generali (scritte da soli).
Tabella di esempio
> 32
0 0 0 0 0 0
1 1 1 1 1 1
2 10 2 2 2 2
3 11 3 3 3 3
4 100 10 4 4 4
5 101 11 5 5 5
6 110 12 6 6 6
7 111 13 7 7 7
8 1000 20 10 8 8
9 1001 21 11 9 9
10 1010 22 12 a a
11 1011 23 13 b b
12 1100 30 14 c c
13 1101 31 15 d d
14 1110 32 16 e e
15 1111 33 17 f f
16 10000 100 20 10 g
17 10001 101 21 11 h
18 10010 102 22 12 i
19 10011 103 23 13 j
20 10100 110 24 14 k
21 10101 111 25 15 l
22 10110 112 26 16 m
23 10111 113 27 17 n
24 11000 120 30 18 o
25 11001 121 31 19 p
26 11010 122 32 1a q
27 11011 123 33 1b r
28 11100 130 34 1c s
29 11101 131 35 1d t
30 11110 132 36 1e u
31 11111 133 37 1f v
32 100000 200 40 20 10