/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 在校学生
* All rightsreserved.
* 文件名称: 项目4.cpp
* 作 者:刘旺
* 完成日期:2014年3月13日
* 版本号: v1.0
*
* 输入描述:
* 问题描述:编一个程序,其中调用函数void tran(int n, int d)用于将十进制数n转换为d进制数输出,
* 并输出d进制数中最大位值是多少,在第几位。d的取值在2-32之间,数制d超过10时,
* 依次用ABC...代表其基本符号,如对17进制而言,G代表其最大符号,对应十进制的16。
* 程序输出:
* 问题分析:
*/
#include <iostream>
using namespace std ;
void tran(int n, int d) ;
int main()
{
cout << "1000的" << "2进制数为:" ;
tran(1000,2) ;
cout << endl ;
cout << "1000的" << "8进制数为:" ;
tran(1000,8) ;
cout << endl ;
cout << "1000的" << "24进制数为:" ;
tran(1000,24) ;
cout << endl ;
return 0 ;
}
void tran(int n, int d)
{
char a[20] ;
int i=0,j,k ;
while(n != 0)
{
a[i] = n%d+48 ;
if(a[i]>58){a[i]=a[i]+7;}
n = n/d ;
i++ ;
}
for(j=i-1; j>=0; j--)
{
cout << a[j] ;
}
}
我感觉进制转换确实是个经典题十分有意思,这个题在学c中做过也有点映像,所以现在写出来感觉心情不错。come on!