/* Program 7-7

   Program to convert a positive base 10 integer
   to another base less than 16 (hexadecimal)    */

main ()
 {
  static char base_digits[16] =
	      { '0', '1', '2', '3', '4', '5', '6', '7',
		'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
  int next_digit, base, index = 0, converted_number[64];
  long int number, number_to_convert;

  /* get the number and the base */

  printf ("Enter number to be converted\n");
  scanf ("%ld", &number_to_convert);
  printf ("Enter base to convert to\n");
  scanf ("%d", &base);
  number = number_to_convert;

  /* conversion */

  do
   {
    converted_number[index] = number_to_convert % base;
    ++index;
    number_to_convert = number_to_convert / base;
   }
  while ( number_to_convert != 0 );

  /* display results in reverse order */

  printf ("%ld in base %d = ", number, base);

  for ( --index; index >= 0; --index )
   {
    next_digit = converted_number[index];
    printf ("%c", base_digits[next_digit]);
   }
  printf ("\n");
 }


/* Program Output

Enter number to be converted
10
Enter base to convert to
2
1010

*/
