C++实现十进制转换为任意进制

  1. 十进制数在C++中用什么表示?
  2. 一个十进制数,在程序中用什么方式转换为其他进制,和在数学中的思路一样吗??
  3. 输出的结果用什么表示比较方便?
  4. 下面的程序中digit思考为什么要用静态变量?
#include <iostream>
#include <stack>
using namespace std;
//十进制转任意进制:递归实现
void convert(stack<char>& S, __int64 n, int base)//得到一位
{
	static char digit[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };//新进制下的数位
	if (n > 0)//直到n->0
	{
		S.push(digit[n%base]);//存入
		convert(S, n / base, base);//第二个参数十进制数更新,通过递归得到所有更高位
	}
}//S逆序输出

//迭代实现
void convertIteration(stack<char>& S, __int64 n, int base)
{
	static char digit[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };//新进制下的数位
	while (n > 0)
	{
		int remainder = int(n%base);
		S.push(digit[remainder]);
		n /= base;
	}
}

猜你喜欢

转载自blog.csdn.net/vict_wang/article/details/81590240