美文网首页
C++进制转换

C++进制转换

作者: 壹顾倾城 | 来源:发表于2020-06-12 15:46 被阅读0次

程序来源 :C++ primer plus
章 节 :5.20
名 称 :nested.cpp
功 能 :初始化二位数组

/********************************
* 程序名称:进制转换 
* 作    者:tiaya@qq.com
* 功能实现:输入(n,m)将n转为m进制输出 
* 开发时间:2020-  -
* 版    本:v1.0
* 运行测试:通过
* 版本差异:无
*******************************/

//#include <bits/stdc++.h>  //万能头文件,不建议使用
#include <iostream>
using namespace std;

/*turnto(n,m)*/
void turnto(int n,int m=10){
    int res[100] = {};
    char ch[] = "ABCDEF";
    int s = 0;
    while (n) {
        int k = n % m;
        n = n / m;
        res[s] = k;
        s ++;
    }
    
    for(int i=s-1; i>=0; i--) {
        if(n < 0 ) 
            cout << '-';    //负数处理 
        if(res[i] < 10) {
            cout << res[i]; 
        } else {
            cout <<ch[res[i] - 10];
        }
        //非负数 
    }
}
//main() star
int main() {
    //(一) 分析问题:输入(n,m)将n转为m进制输出 
    //已知:n,m
    //求解:输入(n,m)将n转为m进制输出 

    //(二) 数据定义
    int x;
    cout <<"输入一个数字,如100:";
    cin >> x;
    //输出二进制
    cout <<"转为2进制是:";
    turnto(x, 2);
    cout <<"\n";  
    //输出八进制 
    cout <<"转为8进制是:";
    turnto(x, 8); 
    cout <<"\n"; 
    //输出十进制 
    cout <<"转为10进制是:"; 
    turnto(x, 10); 
    cout<<"\n"; 
    //输出十六进制
    cout <<"转为16进制是:"; 
    turnto(x, 16);
    cout <<"\n"; 

    return 0;
}

运行结果:

/**************
输入一个数字,如100:158794645
转为2进制是:1001011101110000001110010101
转为8进制是:1135601625
转为10进制是:158794645
转为16进制是:9770395

--------------------------------
Process exited after 3.422 seconds with return value 0
请按任意键继续. . .
*/

声明:本代例子码源自教材非原创,是笔者的学习笔记,仅用于学习交流。

相关文章

网友评论

      本文标题:C++进制转换

      本文链接:https://www.haomeiwen.com/subject/ofxntktx.html