PDA

View Full Version : [C++]Trasformare un char in int o...


MrModd
17-04-2008, 14:17
...considerare i valori di char come numeri.
Ciao! Avrei bisogno di utilizzare dei valore assegnati a char come numeri per poterli sommare, moltiplicare e fare insomma tutta quella roba che si fa con i numeri :D.
Se io definisco char a='4'; lui me lo prende come "carattere" 4. Se lo imposto come char a=4, lo posso poi riportare in una variabile int?

wingman87
17-04-2008, 14:29
Credo di sì, non hai provato?
Comunque se hai ad esempio:
char c='3';
se vuoi da c ricavare il valore 3 basta che fai:
char n=c-'0';

MrModd
17-04-2008, 14:51
Non ho provato perchè il sorgente è per microcontrollore e mi si è bruciato il display, quindi per ora vado a tentativi e per "sentito dire"...
Il secondo codice intendi "int n=c-'0';"? E cosa rappresenta il -'0'?

Ps. Mi sembra che una volta avevo provato a mettere su char valori senza apici, ma non venivano considerati come numero. Per esempio char c=3;, se poi lo visualizzavo comparivano caratteri casuali (294829476274).

wingman87
17-04-2008, 15:13
Allora, i caratteri che rappresentano i numeri da 0 a 9 hanno una certa codifica ma sono comunque consecutivi (0,1,2,3...), se tu al carattere che rappresenta ad esempio lo 0 sottrai sé stesso ottieni il valore numerico 0. Quindi se fai '3'-'0' ottieni 3.
Ho fatto comunque la prova e funziona

Ps. Mi sembra che una volta avevo provato a mettere su char valori senza apici, ma non venivano considerati come numero. Per esempio char c=3;, se poi lo visualizzavo comparivano caratteri casuali (294829476274).
Se volevi che venisse visualizzato 3 allora dovevi fare una printf("%d",c);
In questo modo c veniva trattato come un numero intero (questo però può causare problemi, non sono sicuro, è tanto che non uso C e non mi ricordo alcune cose)

tomminno
17-04-2008, 16:04
...considerare i valori di char come numeri.
Ciao! Avrei bisogno di utilizzare dei valore assegnati a char come numeri per poterli sommare, moltiplicare e fare insomma tutta quella roba che si fa con i numeri :D.
Se io definisco char a='4'; lui me lo prende come "carattere" 4. Se lo imposto come char a=4, lo posso poi riportare in una variabile int?

basta un semplice cast a int.

MrModd
17-04-2008, 16:10
basta un semplice cast a int.

:confused:

MrModd
17-04-2008, 20:13
Non è simile a quello che ha detto wingman87?

tomminno
18-04-2008, 09:38
:confused:

Scusa ma avevo capito male il senso di questa frase:

Se lo imposto come char a=4, lo posso poi riportare in una variabile int?


Pensavo che tu volessi portare un char di valore 4 in un int, non il carattere '4' nell'intero 4.