Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

convert

$
0
0
#include <iostream>

using namespace std;


void decimal2Base(int num, int base, char *result, int offset = 0);
void decimal2Base(int num, int base, char * result, int offset)
{
   if (base > 36 || base < 2)
      result = "NaN";
   else
   {
      int digitVal = num % base;
      *result = (digitVal < 10 ? digitVal + '0' : digitVal - 10 + 'A');

      if (num >= base)
         decimal2Base(num / base, base, result + 1, offset + 1);
      else
      {
         result[1] = '\0';
         result -= offset;
         //get result's length
         int length = 0;
         for (char *ptr = result; *ptr; ptr++)
            length++;
         //copy result to a temporary string
         char *temp = new char[length + 1];
         for (char *ptr = result, *tempPtr = temp; *ptr; ptr++, tempPtr++)
            *tempPtr = *ptr;
         //copy back to result in reversed order
         for (int i = length - 1; i >= 0; i--)
            result[length - 1 - i] = temp[i];
         //free memory of the temporary string
         delete [] temp;
      }
   }
}
int main()
{

   int num;
   int base;
   char result[20];

   while (true)
   {
      cout << "Enter number: ";
      cin >> num;
      if (num < 0)
      cout << "Enter base: ";
      cin >> base;
      if (base > 36 || base < 2)

      decimal2Base(num, base, result);
      cout << result << endl;

      cout << endl;
   }

   cout << "\nEnd - Press enter to exit . . . ";
   cin.sync();
   cin.get();
   return 0;
}


can anyone help in converting this code to c++ in order to understand it clearly because we use c++ only

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>