Oppure

Loading
25/02/14 16:52
perillitommaso
E comunque l'ho provato e mi esce visualizzato solo G12345
aaa
25/02/14 18:22
Per la somma pensavo seriamente che la facessi tu ... :noway: ... eh ... dai !

Per il risultato, sicuro che è G12345 e non C12345 ?
26/02/14 16:26
perillitommaso
Bhe è la somma io vorrei farla tra 2 numeri DECIMALI e cioè i due numeri decimali inseriti prima di fare la conversione, per il semplice fatto che fare la somma tra due configurazioni bcd è un casino. E comunque come mai esce quella "stringa di caratteri" ?
aaa
26/02/14 18:50
Tommaso ... ti ho fatto una domanda precisa, perché non rispondi?

E' G12345 o C12345 ?
27/02/14 14:04
perillitommaso
C12345 esce, ma cosa significa questo?
aaa
27/02/14 16:11
Ecco mi pareva che G non c'entrasse nulla ...

La visualizzazione del valore BCD risultato della conversione, come puoi vedere della printf che usa %X, avviene in esadecimale, in modo da controllare che tutte le cifre siano state convertite correttamente.

Dato che il segno vale 1100 oppure 1101, vedrai l'equivalente esadecimale, nel primo caso C e nel secondo D.

Quindi tutti i valori BCD positivi, visualizzati in esadecimale, cominceranno con C, tutti i negativi con D
27/02/14 19:22
perillitommaso
Ma in BCD non esistono le lettere A B C D E F come sono presenti nella codifica esadecimale, il codice BCD è un codice che la massima configurazione che può diciamo ottenere è 1111 e la minima è 0000, il segno viene proprio indicato con i 4 bit, non con la lettera esadecimale
aaa
27/02/14 19:51
Tommaso ... fai confusione tra rappresentazione del dato e valore del dato.

Se rappresenti il segno in binario avrai 1100, se lo rappresenti in decimale sarà 12, in esadecimale sarà C, ma è la stessa cosa.

Per semplificare ho usato la printf per visualizzare il valore BCD in esadecimale, se vuoi puoi visualizzarlo in decimale (con %d) ma se vuoi visualizzare 1100 per il segno, non userai la printf ma una tua apposita funzione per trasformare il valore in binario e poi in stringa di caratteri 0 e 1.
Dal punto di vista del tuo esercizio non cambia nulla perché si parla solo di "conversione" e "addizione" non di "visualizzazione del dato BCD". Importante è che il valore del primo nibble utile sia 1100 (12) o 1101 (13).

Secondo me tu non hai ancora la preparazione adatta a svolgere questo tipo di esercizi perché ti manca la "teoria" di base ...
Ultima modifica effettuata da 27/02/14 19:56