|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2006
Messaggi: 6
|
[C++] codifica da base decimale a base 7
AIUTOOOOOOOOOO!!!!!!!!!!
Salve ragazzi, una richiesta: mi servirebbe capire come trasformare un numero in rappresentazione decimale in rappresentazione in base 7, o cmq in generale codifica tra diverse basi. GRAZIE. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Dividi il tuo numero per la base del numero che vuoi ottenere finchè non diventa zero. I resti delle divisioni saranno le cifre del tuo numero con la nuova base. Il resto della prima divisione ti dà la cifra meno significativa, il resto dell'ultima ti dà quella più significativa.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Codice:
package prova;
public class Main {
public static void main(String[] args) {
int n = 10;
System.out.println(fromDecToBase(n, 2));
System.out.println("Expected: 1010");
}
public static int fromDecToBase(int dec, int base) {
String resti = "";
while(dec != 0) {
resti = ("" + dec%base) + resti;
dec /= base;
}
return Integer.parseInt(resti);
}
}
Codice:
1010 Expected: 1010 Ultima modifica di ndakota : 03-07-2010 alle 15:37. |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Feb 2006
Messaggi: 6
|
e casomai volessi un intero e non stampare semplicemente????
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quella decimale è una notazione posizionale, per cui ogni cifra che occupa la i-esima posizione (dalla destra, con indice iniziale 0) sarà un multiplo di 10^i.
Per cui, ad esempio: Codice:
4857 = 4000 + 800 + 50 + 7 = 4·(10^3) + 8·(10^2) + 5·(10^1) + 7·(10^0) Codice:
algoritmo Decimale-Cambia-Base(intero numero, intero base) → intero {
risultato = 0;
finché (numero ≠ 0) {
resto = (numero % base);
numero = (numero / base);
accoda resto a risultato;
}
restituisci risultato;
}
Codice:
algoritmo Decimale-Cambia-Base(intero numero, intero base) → intero {
moltiplicatore = 1;
risultato = 0;
finché (numero ≠ 0) {
resto = (numero % base);
numero = (numero / base);
risultato = (risultato + (moltiplicatore · resto));
moltiplicatore = (moltiplicatore · 10);
}
restituisci risultato;
}
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 03-07-2010 alle 19:03. |
|
|
|
|
|
#6 | |
|
Junior Member
Iscritto dal: Feb 2006
Messaggi: 6
|
Quote:
THANKS!!!!!!! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:47.




















