黑客X档案官方论坛's Archiver

wzywsk 发表于 2008-4-27 12:51

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

程序源代码:

#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;   
}

wangchangqing 发表于 2008-4-27 19:40

什么语言编写的?::05:: ::05:: ::05::

610548422 发表于 2008-4-27 21:20

回复 2# 的帖子

C++





















C++

lingol 发表于 2008-4-28 01:29

What if the number -16 ?

编程小猪 发表于 2008-4-30 09:40

要转9876543210能转吗

jingyukxy 发表于 2008-5-3 22:14

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

lovehui 发表于 2008-5-13 23:11

用堆栈做呗,程序看起来有点别扭,呵呵~~~

521322132 发表于 2008-5-28 06:34

写的满不错的,比我强,向你学习!加油

页: [1]


Powered by Discuz! 6.1.0  © 2001-2007 Comsenz Inc.