流云

风驰影跃长 月映霜华裳
随笔 - 23, 文章 - 6, 评论 - 53, 引用 - 0

导航

<2007年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

留言簿(0)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

东观沧海

云散之处

搜索

最新评论

阅读排行榜

评论排行榜

进制、字符串转换

1.atoi(),atol()/strtol(),atof()/strtod()等函数分别将字符串转成int,long,double型的数.
2._itoa(),_ltoa()分别将int,long型的数转成字符串.
3.使用CString::Format(),fscanf()能产生更多的格式化字符串(函数具体用法参见MSDN)
4.十六进制串转10进制数
#include <string.h>
int htoi(char ch[])   {
 int result=0; 
 int tmp=0;
        int i=0;
        if(ch[0]=='0' && ch[1] | 32=='x')
             i=2;
        int len=strlen(ch);
 for(;i<len;i++)
 {
  tmp=ch[i] | 32;
  if(tmp>='a' && tmp <='f')
   tmp=tmp-'a'+10;
  else if(tmp>='0' && tmp <='9')
   tmp=tmp-'0';
  else
   return -1;
  result=(result<<4)+tmp;
 }
 return result;
}

posted on 2005-12-21 18:12 流云 阅读(3758) 评论(3)  编辑 收藏

评论

# re: 进制、字符串转换

为什么要把数组的 数据 跟 32 或?

很困惑, 
2006-01-06 15:18 | 悠然我心

# re: 悠然我心

“|32”把大写字母变成小写字母,如:'A'(0x41) , 'a'(0x61) ,则'A'|32 →
0x41 | 0x20 → 0x61 → 'a' .这样可以接受大(小)写的16进制字符串.
2006-01-07 09:14 | 流云

# re: 进制、字符串转换

怎样实现任意进制间的转换
2007-06-25 20:49 | spring
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]