| Autore |
Discussione  |
|
|
AndreTomasi
Nuovo Utente
|
Inserito il - 03/06/2005 : 21:17:18
|
Salve, volevo sapere se c'era qualcuno che era in grado di dirmi come si effettua la conversione di un numero di qualsiasi base in base 3.
Il mio problema chiedeva di inserire una base, inserire il numero, inserire un'altra base in cui convertire il numero.Il numero massimo è 65535 ossia di 16 bit.
Mi mancano solamente le conversioni in base 3,4,5,6,7,8,9 ma mi basta saperne una per ottenere le altre.
Vi prego aiutatemi.
   
|
|
|
axelgenus
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Bari
|
Inserito il - 05/06/2005 : 11:54:49
|
Se il numero di partenza ha una base più grande di quella di destinazione puoi applicare il metodo delle divisioni successive. In pratica supponiamo tu abbia un numero x in base 10. Dividi ripetutamente x per la nuova base e segnati i riporti.
Esempio (conversione di 100 da base 10 a base 3):
100 | 3 Riporto: 1 33 | 3 Riporto: 0 11 | 3 Riporto: 2 3 | 3 Riporto: 0 1 | 3 Riporto: 1 0 <- quando arrivi a zero termina la conversione
Il numero 100 in base 3 dovrebbe quindi essere 10201... |
 |
|
|
AndreTomasi
Nuovo Utente
|
Inserito il - 05/06/2005 : 13:39:51
|
Ok grazie.
Ora come posso fare questo con assembler utilizzando un numero a 16 bit? E' una settimana che ci provo ma sono riuscito solo con la esadecimale e la binaria. |
 |
|
|
axelgenus
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Bari
|
Inserito il - 07/06/2005 : 09:54:56
|
Citazione: Messaggio inserito da AndreTomasi
Ora come posso fare questo con assembler utilizzando un numero a 16 bit?
Non è difficile... devi solo creare un ciclo che divide ripetutamente il tuo numero (in AX, quindi a 16 bit) e ti devi memorizzare i riporti in un vettore (ricorda che i riporti devono essere scritti al contrario per avere il numero corretto). Guardati bene la descrizione dell'istruzione DIV dell'assembler dalle dispense del prof. Anelli...
Ciao, Lex. |
 |
|
| |
Discussione  |
|