打印

[转帖] 十进制数转二进制、八进制、十六进制的经典程序

十进制数转二进制、八进制、十六进制的经典程序

程序源代码:

#include <iostream.h>

//十进制数转换成二进制数字
void fun_1(int n)
{
  if(n<2)  
       cout<<n;
  if(n>=2)  
  {
    fun_1(n/2);
    cout<<n%2;
  }
}

//十进制数字转换成八进制数字
void fun_2(int n)
{
  if(n<8)  
     cout<<n;
  if(n>=8)  
  {
    fun_2(n/8);
    cout<<n%8;
  }
}

//十进制数转换成十六进制数字
void fun_3(int n)
{
  switch(n)
  {
    case 10:  cout<<"A"; break;
    case 11:  cout<<"B"; break;
    case 12:  cout<<"C"; break;
    case 13:  cout<<"D"; break;
    case 14:  cout<<"E"; break;
    case 15:  cout<<"F"; break;
    default:  cout<<n;  
  }
}   

void fun_4(int n)
{
  if(n<16)  
       fun_3(n);
  if(n>=16)  
  {
    fun_4(n/16);
    fun_3(n%16);
  }
}



//主函数
void main()
{
    int n;
    cout<<"请输入n的值:  "<<endl;
    cin>>n;
    cout<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<<endl;
    fun_1(n);        
    cout<<endl;      //输出结果换行
    fun_2(n);        
    cout<<endl;      
    fun_4(n);      
    cout<<endl;   
}

TOP

什么语言编写的?

TOP

回复 2# 的帖子

C++





















C++

TOP

What if the number -16 ?

TOP

要转9876543210能转吗
以子之,攻子之矛。

TOP

是啊,负的怎么办了?  呵呵 ,再看看吧

TOP

用堆栈做呗,程序看起来有点别扭,呵呵~~~
牵着你的手,一步一步向前走~~~

TOP

写的满不错的,比我强,向你学习!加油
研究VB和C++技术,X杂志忠实读者

TOP

Processed in 0.069804 second(s), 5 queries, Gzip enabled.