[ create a new paste ] login | about

Link: http://codepad.org/TZ92lPYq    [ raw code | output | fork ]

C++, pasted on Nov 18:
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++] );
}


Output:
1
2
3
4
5
6
7
8
9
10
Number is negative.
9
4
5
6
1
3
2
7
8


Create a new paste based on this one


Comments: