uint8_t NumberToDigits( long number, char* digits, bool& negative)
{
sprintf( digits, "%ld", number );
uint8_t
i = 0,
n = strlen( digits );
if ( digits[0] == '-' )
{
negative = true;
n -= 1;
while ( i < n )
{
digits[i] = digits[i+1];
digits[i++] -= '0';
}
}
else
{
negative = false;
while ( i < n )
digits[i++] -= '0';
}
return n;
}
int main()
{
char digits[12];
bool neg;
uint8_t
i = 0,
n = NumberToDigits( -945613278, digits, neg );
printf( "Number is %s.\n", neg ? "negative" : "positive" );
while ( i < n )
printf( "%d\n", digits[i++] );
}