Spezzettare un numero intero o viceversa

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 :wink:

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.

Guglielmo

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]