cdere
02-11-2008, 15:43
Salve raga,
per l'uni ho fatto questo esercizio:
Scrivere un programma che legga un carattere '0', '1',......'A',....'F' - cifra esadecimale - e stampi il valore decimale corrispondente 0,1-----10,...15
Eccovelo qui:
int main()
{
int index,ascii[100],i;
char alfa;
// inserisco nel vettore dalla posizione 0 alla 9 tutti i codici ascii dei corrispondenti da 0 a 9
i=48;
for(index=0;index<=9; index++) {
ascii[index]=i;
i++; }
// inserisco nel vettore dalla posizione 10 alla 15 tutti i codici ascii delle lettere da A...F
i=65;
for(index=10;index<=15;index++) {
ascii[index]=i;
i++; }
//stampo il corrispondente valore letto in int in char dal vettore
printf("Inserire il valore hex da tradurre in dec: ");
scanf("%d",&alfa);
printf("il valore in dec e' %c",ascii[alfa]);
}
Ora, l'algoritmo funziona ma AL CONTARIO :/ cioè se inserisco per dire 15 mi restituisce F come dovrebbe fare, così per 0->0 10->A 11->B... ma se provo il contrario, cioè sostituisco all'ultimo scanf al posto di %d metto %c e al posto dell'ultimo printf al posto di %c, %d e quindi inserisco i valori in HEX per avere quelli in decimale come mi aspetterei (quindi per dire inserire F->15 e così via) mi restituisce sempre 0!
avete idee in merito? magari l'esposizione non è stata delle migliori :p
bye e grazie comunque ;)
per l'uni ho fatto questo esercizio:
Scrivere un programma che legga un carattere '0', '1',......'A',....'F' - cifra esadecimale - e stampi il valore decimale corrispondente 0,1-----10,...15
Eccovelo qui:
int main()
{
int index,ascii[100],i;
char alfa;
// inserisco nel vettore dalla posizione 0 alla 9 tutti i codici ascii dei corrispondenti da 0 a 9
i=48;
for(index=0;index<=9; index++) {
ascii[index]=i;
i++; }
// inserisco nel vettore dalla posizione 10 alla 15 tutti i codici ascii delle lettere da A...F
i=65;
for(index=10;index<=15;index++) {
ascii[index]=i;
i++; }
//stampo il corrispondente valore letto in int in char dal vettore
printf("Inserire il valore hex da tradurre in dec: ");
scanf("%d",&alfa);
printf("il valore in dec e' %c",ascii[alfa]);
}
Ora, l'algoritmo funziona ma AL CONTARIO :/ cioè se inserisco per dire 15 mi restituisce F come dovrebbe fare, così per 0->0 10->A 11->B... ma se provo il contrario, cioè sostituisco all'ultimo scanf al posto di %d metto %c e al posto dell'ultimo printf al posto di %c, %d e quindi inserisco i valori in HEX per avere quelli in decimale come mi aspetterei (quindi per dire inserire F->15 e così via) mi restituisce sempre 0!
avete idee in merito? magari l'esposizione non è stata delle migliori :p
bye e grazie comunque ;)