Hello, I am new to Arduino, and I'm trying to write an easy program that can inverse a number but I am stuck in this problems, for example, if the integer has the value 123456, then I want to inverse that to 654321, any tips or codes for reference? Thanks.

Which data type is the number held in ?

integer

thanks!

morsta111:

integer

thanks!

An unsigned long int (or uint32_t) I presume

Do you know how to separate the number into its digits ?

i am not sure, is it number % 10?

```
for (i = 0; i < digits; i++)
{
out = (out * 10) + (in % 10)
in /= 10
}
```

…which just leaves the problem of determining the value of “digits”

```
unsigned long in = 123456;
unsigned long out = 0;
while (in != 0) { // as long as 'in' has digits left
out *= 10; // shift 'out' one digit to the left
out += in % 10; // add the rightmost digit of 'in' to 'out'
in /= 10; // shift 'in' one digit to the right
}
```

Intermediate values to see how it works:

```
in out
123456 0
12345 6
1234 65
123 654
12 6543
1 65432
0 654321
```

Pieter