黑马程序员技术交流社区

标题: 关于将十进制转换为其它进制的问题 [打印本页]

作者: 为了心中的梦    时间: 2014-10-17 22:42
标题: 关于将十进制转换为其它进制的问题
如有不足 望指教  谢谢

//编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间)。(C语言)
///////////////////////////////////////////////////////////////////
//转化为二进制
     void zhuanHuaTwo(int num)
    {
        int sum=0;
        sum=sizeof(num)*8;
        //通过把右移把十进制转化为二进制
        int k;
        for(int i=0;i<sum;i++)
        {
            k=num>>(sum-i-1)&1;
            if(i!=0&&i%8==0)
            {
                printf(" ");
            }
            printf("%d",k);
        }
    }

//Czqiang

///////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////
//转化为八进制
    void zhuanHuaEight(int num)
    {
        printf("转化后的二进制为%o\n",num);
        
    }

//Czqiang


///////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////
//转化为十六进制
    void zhuanHuaSixteen(int num)
    {
        printf("%x\n",num);
        
    }

//Czqiang

///////////////////////////////////////////////////////////////////
#include <stdio.h>

int main(int argc, const char * argv[])
{
    char ch;
    int i=0;
    printf("请选择你要转化哪种进制:a表示转化为二进制  b表示转化为八进制  c表示转化为十六进制\n");
    scanf("%c",&ch);
    printf("\n");
    printf("请输入你要转化的数字\n");
    scanf("%d",&i);
        switch(ch)
        {
                case 'a': zhuanHuaTwo(i);break;
               
                case 'b': zhuanHuaEight(i);break;
        
                case 'c': zhuanHuaSixteen(i);break;
               
                default:printf("能力有限,有待研究");break;
               
        
        }
   
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2