面试题:编撰一个将十进制数转换为任意进制的算法或函数
面试题:编写一个将十进制数转换为任意进制的算法或函数
题目:设计一个函数,输入参数1是一个十进制整数,参数2是要待转换的进制,用m表示,如m=8,代表将参数1转换为8进制。并给出输出。
思路:除积取余,倒排余数。
代码:
#include "stdafx.h"
#include <iostream>
#include <deque>
using namespace std;
deque<int>Hexadecimal_Conversion(int n,int m)
{
deque<int> deqH;
while(0 != n / m)
{
deqH.push_front(n% m);
n/= m;
}
deqH.push_front(n% m);
return deqH;
}
int_tmain(int argc, _TCHAR* argv[])
{
int n = 10;
int m = 2;
deque<int> deqT;
deqT= Hexadecimal_Conversion(n,m);
copy(deqT.begin(),deqT.end(),ostream_iterator<int>(cout,""));
cout<<endl;
return 0;
}
输出:1 0 1 0
当然,如果输出16进制时,输出时可能需要将10到15转换为A到F