PDA

Visualizza la versione completa : [ALGORITMO] Traduzione in esadecimale


Horus-Ra
21-11-2006, 12:13
Devo tradurre una stringa in esadecimale, ma ho vaghe reminiscenze di come si debba fare (parliamo delle superiori :D ).
Ho provato a cercare su internet, ma non riesco a trovarlo... qualcuno può linkarmi un sito dove lo spiega o un programma che lo traduce?
Oppure mi basta anche un esempio pratico.

LeleFT
21-11-2006, 12:15
E in che linguaggio?
Ricorda che va specificato anche nel titolo.
Oppure ti interessa il procedimento matematico per al conversione dei numeri da base 10 a base 16?


Ciao. :ciauz:

Horus-Ra
21-11-2006, 12:17
Mi basta il procedimento matematico... la stringa ce l'ho su carta, devo soltanto sapere il codice esadecimale

LeleFT
21-11-2006, 12:27
Devi procedere in questo modo: ciascun carattere ha un "peso" che è dato dal suo codice ASCII (la tabella la trovi su internet ovunque).

Prendi ciascun peso e lo converti in esadecimale.

La conversione di base (da base 10 a base x) ha sempre lo stesso procedimento:
Prendi il numero e lo dividi ripetutamente per la base a cui lo vuoi convertire, tenendo da conto il resto di tale divisione (N.B.: Il resto sarà sempre minore in senso stretto del valore della base di conversione).
Ora non ti resta che prendere il simbolo relativo al resto trovato. (*)
Procedi quindi alle successive divisioni, finchè il quoziente non diventa 0.

Il valore nella nuova base sarà dato dalla sequenza dei resti presa al contrario.


(*) Parlo di simbolo perchè nella base 16, oltre alle 10 cifre numeriche hai anche 6 simboli alfanumerici: A,B,C,D,E e F. Al simbolo A viene associato il valore 10, alla B il valore 11, ecc.


Un esempio pratico:


127 --> da convertire in esadecimale

127 / 16 = 7 con resto 15 --> simbolo relativo a 15 --> F
7 / 16 = 0 con resto 7 --> simbolo relativo a 7 --> 7
Ho finito perchè ho ottenuto 0 nella divisione.

127 in base 16 --> 7F

Ciao. :ciauz:

Horus-Ra
21-11-2006, 12:32
:master: Da come l'hai posto, l'esempio dei numeri è chiaro e l'ho capito...
Ma cosa succede se avessi delle lettere? Per esempio la parola "casa".

Qui ho trovato una tabella che confronta decimali, binari e esadecimali,
http://www.tkk.it/var/alfabeto/ascii.html (http://)
ma come s'incrociano le due righe (in alto e a sinistra?) :confused:

LeleFT
21-11-2006, 12:36
Effettivamente hai trovato una delle pochissime tabelle in cui la consultazione va fatta con un po' d'occhio matematico...

Prova con questa (http://www.neurophys.wisc.edu/comp/docs/ascii.html).

Per il resto, non ti rimane che prendere lettera per lettera la parola "casa" e convertire il relativo valore esadecimale (suggerimento: nella tabella che ti ho linkato, questo lavoro è già stato fatto!)


Per quanto riguarda quella tabella, per calcolare il peso del carattere devi prendere il valore riportato sulla colonna e sommarci quello riportato sulla riga.

Esempio: la lettera A è sulla colonna con valore 64 e sulla riga con valore 1. Valore della lettera A --> 64 + 1 = 65


Ciao. :ciauz:

Horus-Ra
21-11-2006, 12:42
Grazie, una spiegazione perfetta
:ciauz:

Loading