您的位置:首页 > 其它

请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出

2016-11-04 20:54 579 查看
/*****************************************************

copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd.

File name:

Author:Jerey_Jobs    Version:0.1    Date:

Description:

Funcion List:

*****************************************************/

#include <stdio.h>

int fun2(int num);

int fun16(int num);

int fun8(int num);

int main()

{

    int num,kind;    //定义变量num取用户输入整数,kind取用户需要变换的进制

 printf("Enter the number : \n");        //提示用户输入

 scanf("%d",&num);

 printf("what kind of number do you want to change(2 or 16 or 8) :\n");

 scanf("%d",&kind);

 if(kind == 2)       //根据用户需求进行变换

 {

  fun2(num);

 }

 else if(kind == 16)

 {

  fun16(num);

 }

 else if(kind == 8)

 {

  fun8(num);

 }

 else        //当用户输入不正确时,给出报错信息

 {

  printf("error!\n");

 }

    return 0;

}

int fun2(int num)        //二进制转换

{

 int s[32] = {0};

 int i,n = 0;

 while(num != 0)

 {

  s[n++] = num % 2;

  num = num / 2;

 }

 printf("二进制数为 :");

 for(i = n - 1;i >= 0;i--)

 {

  printf("%d",s[i]);

 }

 printf("\n");

 return 0;

}

int fun16(int num)         //十六进制转换

{

 int s[32] = {0};

 int i,n = 0;

 while(num != 0)

 {

  s[n++] = num % 16;

  num = num / 16;

 }

 printf("十六进制数为 :");

 for(i = n - 1;i >= 0;i--)

 {

  printf("%d",s[i]);

 }

 printf("\n");

 return 0;

}

int fun8(int num)        //八进制转换

{

 int s[32] = {0};

 int i,n = 0;

 while(num != 0)

 {

  s[n++] = num % 8;

  num = num / 8;

 }

 printf("八进制数为 :");

 for(i = n - 1;i >= 0;i--)

 {

  printf("%d",s[i]);

 }

 printf("\n");

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐