09/01/13 17:38
tuttodiMC
Salve a tutti, qualcuno saprebbe dirmi che algoritmo devo usare per creare un programma che converta da decimale a binario e viceversa? Preciso che mi serve l'algoritmo solo delle conversioni e non di tutto il programma. Non so come fare, ho provato in vari modi. Il linguaggio che ho intenzione di usare è il Lua quindi se qualcuno lo conosce ancora meglio. Mi vanno benne gli algoritmi scritti in qualsiasi linguaggio tranne java o c++
aaa
09/01/13 17:46
nessuno
Da decimale a binario
Dividi il valore per 2 e prendi il resto continuamente fino a che il valore diventa 0
Tutti i resti presi dall'ultimo verso il primo costituiscono il valore binario
Da binario a decimale
Esamina i bit dal primo a destra verso il primo a sinistra effettuando la sommatoria in cui gli elementi sono
bit x (2 elevato a n)
in cui n vale 0 per la prima cifra a destra e aumenta verso sinistra
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
11/01/13 19:04
tuttodiMC
Vi ringrazio per le risposte ma sono cose che già sapevo. Il problema sta nella struttura del programma, cosa che non ho molto chiara.
aaa
11/01/13 20:47
nessuno
Se sono cose che sapevi, non dovevi chiedere l'algoritmo ma consigli sul codice.
Perché non ci proponi un inizio di codice in modo da capire dove sbagli?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
13/01/13 17:26
tuttodiMC
function dec2bin(n)
io.write("Il numero ", n, "equivale a ")
while n > 0.5 or n == 0.5 do
y = n % 2
n = math.floor(n / 2)
io.write(y)
end
end
dec2bin(5)
Solo che in questo modo scrivo i resti al contrario e con il while non posso saltare delle ripetizioni come con il for, perché il contatore lì parte per forza da 1 e non può partire da 2 perciò mi esce il numero 6 in binario e messo in disordine. Come faccio? Per quanto riguarda da binario a decimale il codice lo devo ancora realizzare.
Ultima modifica effettuata da tuttodiMC 13/01/13 17:34
aaa
13/01/13 17:35
Ultimo
Carica un Array con i resti delle divisioni, e poi li stampi a video ciclando l'Array al contrario
non ci vuole la scienza
If ok Then GOTO Avanza else GOTO Inizia
13/01/13 17:38
tuttodiMC
Ed è qui che tu ti sbagli. Io avevo già provato a farlo ma sapresti scrivermi il codice per farlo? Anche in un altro linguaggio.
aaa