程序来源 :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
请按任意键继续. . .
*/
声明:本代例子码源自教材非原创,是笔者的学习笔记,仅用于学习交流。
网友评论