Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137377
  • 博文数量: 27
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-23 13:28
文章分类

全部博文(27)

文章存档

2011年(1)

2009年(15)

2008年(11)

我的朋友

分类: LINUX

2008-12-11 01:01:44

十进制数转化为相应十六进制数字符串的办法
第一种是使用itoa函数
函数原型如下
char *  itoa ( int value, char * str, int base );
value是要转化的数字,str是转化后的字符串存储的位置,base是进制数
一个小的示例程序
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
但是这个函数不是标准C函数,只被一些C++的编译器支持。在Linux中也不能使用。

另外一种方法
  • (str,"%d",value) converts to decimal base.
  • (str,"%x",value) converts to hexadecimal base.
  • (str,"%o",value) converts to octal base.
str是转化存储的位置,value是要转化的数字。上面三个函数分别是10进制,16进制和8进制的转化。
这种方法比较好,可以在Linux下使用。


阅读(5611) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~