请问大家:用C++实现任意进制转换的代码。

xp4105 2006-03-16 08:27:07
用C++实现进制转换的代码。比如输入一个数X 和 一个进制数 N 。将X转换成N 进制就可以了。用C++实现。谢谢大家。
...全文
2364 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangcw_jun 2006-03-25
  • 打赏
  • 举报
回复
#include<iostream>
#include<string>
using namespace std;
void main()
{
int x,n;
char buff[20];
cin>>x>>n;
itoa(x,buff,n);
cout<<buff<<endl;
}
这样可以转换成大于10进制的数 如16进制
love_xiaoxiao 2006-03-25
  • 打赏
  • 举报
回复
我也有个进制转换的问题,不过现在学的太浅。你的这个我还看不懂
YeTimmy 2006-03-16
  • 打赏
  • 举报
回复
#include <iostream>
#include <stack>
using namespace std;
void change(int num, int base, stack<char>& result)
{
while(num != 0)
{
if (num % base < 10)
{
result.push(num % base + '0');
}
else
{
result.push(num % base - 10 + 'A');
}
num /= base;
}
}
int main()
{
int num, base;
cin >> num >> base;
stack<char> result;
change(num, base, result);
while(!result.empty())
{
cout << result.top();
result.pop();
}
cout << endl;
return 0;
}
水品太差,不要笑:)
(郁闷,写个进制转换都花了将近10分钟,怪不得找不到工作。。。)
xp4105 2006-03-16
  • 打赏
  • 举报
回复
ykzhujiang(朱朱) 你好,那么用栈怎么实现呢? 如果有空,请解答一下,谢谢你了。
xp4105 2006-03-16
  • 打赏
  • 举报
回复
十分感谢大家的帮助!!!!
ykzhujiang 2006-03-16
  • 打赏
  • 举报
回复
楼上的方法当然可以,
同时搂住也可以用栈来实现进制转换
bm1408 2006-03-16
  • 打赏
  • 举报
回复
辗转相除法:
int output[20] = {0};
int num = 0;

do
{
mod = div %X;
div = div /X;
output[num ] = mod;
num ++;

}while(div >0);

num--;
for (; num >= 0; --num)
{
printf("%d", output[num]);
}
bm1408 2006-03-16
  • 打赏
  • 举报
回复
最直接的当然是调用C的函数库了 &-)
在"stdlib.h"中有一个函数: itoa; 它的功能是可以把指定的整数转换成任意进制(进制在2~36之间)的字符串.该函数原型如下:
char * itoa (int num, char *str, int radix)
其中:num是你给出的整数;
str是一个字符串数组,转换后的结果将存放其中
radix指定转换输出的进制;最小值是2,最大值是32。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧