码迷,mamicode.com
首页 > 其他好文 > 详细

编写一个函数itob(int num,char s[], int n),将整数num转换为以n进制的数。保存到s中。

时间:2015-12-02 12:45:53      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:整数num转换为以n进制的数


 编写一个函数itob(int num,char s[], int n),将整数num转换为以n进制的数。保存到s中。

在本题中,二进制、八进制及十进制算法思路一样,采取模除的方式,输出各个位置的数,接着采用逆序输出。在十六进制中"0123456789abcdef"[num%16],求出各位的数字。

#include<stdio.h>
void reverse(int len,char arr[]) //逆置
{
 int left =0;
 int right =len -1;
 while(left < right)
 {
  char temp = arr[left];  
  arr[left] = arr[right];
  arr[right] = temp;
  right --;
  left ++;   
 }
}
void itob(int num,char s[], int n)  //以n进制形式输出
{
 int i=0;
 while(num)  
 {
  if(n<10)
  { 
   s[i]=num% n+‘0‘;   
   num /= n ; //模除
   i++;
  }
  else if(n==16)
  {
   s[i]="0123456789abcdef"[num%16];
   num/=16;
   i++;
  } 
  else
  {
   break; 
  }
 }
 s[i]=‘\0‘;
 reverse(i , s);
}
int main()
{
 char s[32];
 int n=0;
 int num;
 scanf("%d",&n);
 printf("num=");
 scanf("%d",&num);
 itob(num,s, n);   
 printf("%s\n",s);
 return 0;
}

技术分享

技术分享

技术分享


本文出自 “朔月云影” 博客,请务必保留此出处http://19940325.blog.51cto.com/10789287/1718698

编写一个函数itob(int num,char s[], int n),将整数num转换为以n进制的数。保存到s中。

标签:整数num转换为以n进制的数

原文地址:http://19940325.blog.51cto.com/10789287/1718698

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!