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

/*****************************************************
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;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值