vi scrivo qui un metodo abbastanza semplice per trasformare velocemente da decimale a esadecimale e viceversa... ecco:
se abbiamo un numero in esadecimale, per esempio 64, intanto scriviamolo 0x64 per far capre che è un esadecimale.. ma anche se lasciamo 64 non cambia...
prendiamo la prima cifra, 6.
moltiplichiamola per 16 (base esadecimale, 0 -> 15) e sommiamogli 4... viene fuori 100..
vediamo se e giusto sulla tavola o facendo il calcolo normale...
PERFETTO, tutto quadra.. vediamo ora come passare da decimale a esadecimale, sempre con un metodo simile a quello spiegato prima, ma eseguendo le operazioni inverse... ecco come:
d = n - x / 16
allora sono le decine, come lo è 6 per 64, vediamo che dobbiamo sottrargli un certo numero, ovvero x, che pero non conosciamo, e poi dividere il tutto per 16..
facciamo l'esempio di prima, prendiamo 100:
100 - x / 16
in questo caso x = 4, ovvero le unità di 64.. e poi dividiamo tutto per 16, cosi otteniamo 6, ovvero le decine, che affiancate a 4 (unita) ci danno il numero in esadecimale...
in questo caso pero sapevamo gia il valore di x.. e se avessimo per caso il numero 118, come lo mettiamo in hex?
è un po'piu incasinato, ma si puo fare...
118 -> qual'è il numero piu vicino (inferiore di 118 o =)divisibile per 16?
trovato quel numero e diviso per 16 ottengo le decine, per le unita invece basta sottrarre da 118 il numero < o =a 118 divisibile per 16... a parole è un casino, vediamo i fatti...
118 / 16 = 7,375 -> non va bene, pero prendiamo il 7 come riferimento per trovare il multiplo di 16 piu vicino a 118
16 * 7 = 112 -> è un numero intero! abbiamo trovato le nostre decine!
118 - 112 = 6 -> togliendo dal numero di partenza il numero < di 118 divisibile per 16 otteniamo le unita... 6.
avviciniamo ora 7 a 6 e..
100 = 0x76
sarà vero?
verifichiamo.. SI! ce l'abbiamo fatta
questo procedimento epr qualcuno sarà piu lungo ma io uso di fisso questo perche mi viene piu comodo, comunque è meglio sapere, no?
ciao ciao!
ah, vediamo anche come passare da binario a decimale.. stesso procedimento solo che invece di dividere/moltiplicare per 16 lo facciamo per 2.. vediamo, va:
abbiamo il numero 10 (binario):
prendiamo l'uno (decine) e moltiplichiamo per 2:... 2
sommiamo a 2 le unità: 0.. 2 + 0 =...
...
...
2 (Wow!)
infatti 10 binario corrisponde a 2 decimale..
processo inverso:
dividiamo 2 per il numero piu vicino (ma < o =) divisibile per 2.. ehi, ma 2 è divisibile per 2!(ammazza quante scoperte in pochi minuti)
quindi 2 / 2 = 1 (e queste sono le decine)
ora si sottrae da 2 la differenza tra il numero di partenza e quello che abbiamo ottenuto che sia divisibile per due (il 2 stesso):
2 - 2 = 0
avviciniamo lo 0 all'1.. 10 (spettacolare
!!)
quindi 2 = 10b, chiaro ,no?
solo che questo procedimento possiamo farlo solo con il 2 e 3 senza controllare la tavola perche:
prendiamo per esempio il 13:
13 / 2 = 6.5
prendiamo come riferimento il 6
ora ci serve il binario di 6 (ed è qui che serve la tavola)che è 110
ora facciamo
13 - (6 * 2) = 1
quidni accostiamo 110 a 1 e otteniamo:
13 = 1101b
avete visto che e possibile ma si perde solo tempo.. decidete voi che tecniche usare, io vi mostro soltanto quelle disponibili:
questa tecnica è valida con tutte le basi, basta sostituire a 16 (o 2) il numero della base, esempio se io volessi trasformare un numero in base ottale metterei 8 al posto di 16, no?
con questo ho finito.. ciao