首页
社区
课程
招聘
[原创]无聊看到的顺手写了个字符串转数字的代码
发表于: 2011-11-17 18:39 5847

[原创]无聊看到的顺手写了个字符串转数字的代码

2011-11-17 18:39
5847
int _hex2int(char* lpStr)
{
	unsigned int ret = 0;
	
	do {
		unsigned char c = *lpStr;
		ret = ret << 4;
		if (c >= 'a' && c <= 'f'){
			ret += 10 + c - 'a';
		} else if (c >= 'A' && c <= 'F'){
			ret += 10 + c - 'A';
		} else if (c >= '0' && c <= '9'){
			ret += c - '0';
		} else {
			printf("error _hex2int\n");
			break;
		}		
	} while(*++lpStr);

	printf("\n%x %d\n", ret, ret);

	return ret;
}

void _int2str(unsigned int i)
{
	char fmt[16] = {0};
	int bit_pos = 0;
	do {
		fmt[14 - bit_pos] = '0' + (i % 10);
		bit_pos++;
		i = i/10;
	} while(i);
	
	printf("%s\n", fmt + 15 - bit_pos);
}

int main(int argc, char** argv)
{
	char test[] = "1a12fa";
	_int2str(_hex2int(test));
}


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (4)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先坐上沙发!!!
2011-11-17 21:16
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
1个字符串如12345(这个字符串是十六进制的)用汇编转传化成十进制。
你也冲动了吧,要求是汇编转化哟!!!
2011-11-17 21:42
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
4
这个汇编不会手工哦,不过应该也不难把C转换为汇编吧
2011-11-17 21:44
0
雪    币: 128
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
补一个

char *_int2hex(int i)
{
	static char h[] = "0123456789abcdef";
	static char s[32];
	unsigned long val = i;
	char *p = &s[31];
	*(--p) = 0;
	do
	{
		*(--p) = h[val % 16];
		val /= 16;
	}while (val && p>=s);

	return p;
}


写完发现lz的遇到负数会不会杯具呢
2011-11-18 14:10
0
游客
登录 | 注册 方可回帖
返回
//