今天写词法分析器,老师让把常量按照他的二进制形式存在文件中,查了很多资料,发现有个函数可以实现将整型转化成字符串的函数,于是很高兴可以不用自己写函数了,后来测试发现
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) |