C++实现数字进制转换器

C++实现数字进制转换器

刷题中遇到一些进制转化的题目,由于从十进制转化为其他进制(十以内)方法完全相同,因此总结为一个进制转换器作为练习,当作一个练习记录。代码没有经过优化,请诸位大佬轻喷。

十进制转其他进制的原理很多博主介绍的非常详细,这里不再赘述了。代码如下

(在存储转换结果的时候,由于最终需要逆序输出,因此可以使用栈直接进行操作,更方便。这里使用的是较原始的数组)

#include <iostream>
using namespace std;
int main()
{
    int number;  //被转化的数字
    cout<<"输入要转换的数字 :";
    cin>>number;
    int jinzhi;   //设置转化为几进制,2进制就设置为2,3进制就设置为3 (特别注意:仅限10进制以下使用,即转换2-9进制有效)
    cout<<"输入转换为几进制 :";
    cin>>jinzhi;
    int mid_trans[100];   //暂时存储转换结果
    memset(mid_trans,-1,sizeof(mid_trans));   //初始化数组所有元素为-1
    int yu = number;
    int k=0;
    while(yu>=jinzhi)
    {
        mid_trans[k]=yu%jinzhi;  //将转换结果暂时保存在mid_trans数组中
        yu = yu/jinzhi;
        k++;
    }
    mid_trans[k]=yu;
    int Final[100];
    int jj=0;
    memset(Final, -1, sizeof(Final));
    for(int i=0;i<100;i++)    //将转化结果存放在最终结果数组中
    {
        if(mid_trans[i]!=-1)
        {
            Final[jj]=mid_trans[i];
            jj++;
        }
        else break;
    }
    cout<<"转化结果为:";
    for(int i=jj-1;i>=0;i--)   //逆序输出结果
    {
        cout<<Final[i]<<" ";
    }
    cout<<endl;
    return  0;
}

运行结果
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值