Oppure

Loading
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à.
09/01/13 17:46
Renny
aaa
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