Ciao a tutti,
vorrei sapere se su Ardunino esiste una funzione che, dato un numero ad esempio di 6 cifre
123456
possa convertirlo in un array i cui valori delle i-esime celle siano le singole cifre del numero sopra indicato
unsigned long array[10]={0,0,0,0,1,2,3,4,5,6} ad esempio.
E viceversa, ovvero avendo array[10]={0,0,0,0,1,2,3,4,5,6} ottenere un unsigned long pari a 123456
Ho letto in giro di Atoi (array to integer), potrebbe fare al caso mio?
Grazie a tutti!
La atoi passa da un array di cifre scritte in ascii a un intero. Quindi se usi il codice ascii (ovvero se tratti caratteri) sono le funzioni che fanno per te. Se invece continui a trattare numeri allora non vanno bene.
Non so se esistono funzioni prefabbricate in quel caso, ma non é difficile da scrivere
Dato che i numeri, rappresentati in codice ASCII, vanno da 0x30 a 0x39, una volta convertito il numero in un array di char con la itoa(), basta poi sottrarre 0x30 da ogni carattere per avere in quell'elemento dell'array il valore numerico
Es. 1240 se lo converti con la itoa() da un array di 5 elementi: 0x31 0x32 0x34 0x30 0x00 dove l'ultimo elemento è il terminatore di stringa e non ti interessa. Se ora sottrai ai 4 elementi che contengono i caratteri ASCII il valore 0x30 ottieni proprio 0x01 0x02 0x04 0x00 più lo 0x00 finale che devi ignorare.
Azz, unsigned long array[10]={0,0,0,0,1,2,3,4,5,6}; NO per favore!!!
magari hai un numero unsigned long, ma le singole cifre sono da 0 a 9 !!
Quindi l'array basta che ogni cella sia un char o byte quindi : char array[10]