Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97363
  • 博文数量: 17
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-13 19:51
文章分类
文章存档

2011年(1)

2010年(3)

2009年(13)

我的朋友

分类: C/C++

2010-04-08 22:01:26

今天写词法分析器,老师让把常量按照他的二进制形式存在文件中,查了很多资料,发现有个函数可以实现将整型转化成字符串的函数,于是很高兴可以不用自己写函数了,后来测试发现itoa并不是一个标准的C函数,它是Windows特有的,既然linux下没有这个函数,我就写了一个:
将十进制的整数转化成任意进制的字符串形式输出

/*
 * Copyright (c) 2010-~ sunfengxi
 *
 * The source code is released for free distribution under the terms of the GNU General Public License
 *
 *
 * Author:  sunfengxi<722sunfengxi@gmail.com>
 * Created Time: 2010年04月08日 星期四 21时46分15秒
 * File Name: ddd.c
 * Description: 10进制数n转化为m进制数
 *  
 */

#include
#include


void trans(int n,int m,char snum[])
{
   char str[20];int j=0; 
   int i=0;
    while(n>0){
        if(n%m<10){
            str[i]=n%m+'0'; 
        }
       else {
             str[i]=n%m-10+'A'; /*对大写字母的转化*/ 
       }      
             n=n/m;
             i++; 
    }
     for(n=i-1;n>=0;n--){ /*字符数组逆置*/ 
              snum[j]=str[n];
               j++; 
     } 
       snum[j]=0; 
}


int main(int argc, char *argv[])
{
   char str[20];
   int c=12;
   trans(c,2,str);
   printf("%d---->%s\n",c,str) ;

   return 0;
}


上面程序实现十进制向二进制转化,要想转化成其他进制,只要将函数第2个参数修改成对应的进制值。

阅读(2939) | 评论(0) | 转发(0) |
0

上一篇:setsid()

下一篇:一个小模块

给主人留下些什么吧!~~