0
点赞
收藏
分享

微信扫一扫

7-19 进制转换 (25 分)

猫er聆听没落的旋律 2022-04-19 阅读 39
c++

输入十进制整数N和待转换的进制x(2、8、16),分别代表十进制N转换成二进制、八进制和十六进制,输出对应的结果。十六进制中A~F用大写字母表示。

输入格式:

输入两个整数N(十进制整数N)和x(x进制),中间用空格隔开。

输出格式:

输出对应的结果。

样例">输入样例:

在这里给出一组输入。例如:

123 2

输出样例:

在这里给出相应的输出。例如:

1111011

输入样例:

在这里给出一组输入。例如:

123 16

输出样例:

在这里给出相应的输出。例如:

7B

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    char x[6]={'A','B','C','D','E','F'};
    char a[1000];
    int cnt=0;
    if(n==0){
        cout<<"0";
        return 0;
    }
    if(m==16){
        while(n!=0){
            int b=n%16;
            if(b>9){
                a[cnt]=x[b%10];
            }
            else{
                a[cnt]=(n%16)+'0';
            }
            
            n/=16;
            cnt++;
        }
    }
    else if(m==8){
        while(n!=0){
            a[cnt]=(n%8)+'0';
            n/=8;
            cnt++;
        }
    }
    else{
        while (n!=0)
        {
            a[cnt]=(n%2)+'0';
            n/=2;
            cnt++;
        }
    }
    for(int i=cnt-1;i>=0;i--){
        cout<<a[i];
    }
    return 0;

举报

相关推荐

0 条评论