回顾C语言005--把一个十进制的ASCII数字字串 转换为 HEX数字

在STM32单片机中,一个无符号(长)整型数据(u32 /uint32_t /unsigned int)拥有32位二进制数据,最大值为 0xFFFFFFFF = 0d4294967295。

//权计算函数
int Exp_10(unsigned char i)
{
	switch(i)
	{
//	case 10: return 1000000000;break;
	case 9:  return 100000000;break;
	case 8:  return 10000000;break;
	case 7:  return 1000000;break;
	case 6:  return 100000;break;
	case 5:  return 10000;break;
	case 4:  return 1000;break;
	case 3:  return 100;break;
	case 2:  return 10;break;
	case 1:  return 1;break;	//把个位看作第一位,返回10^0=1
	default: return 0;break;
	}
}

int _tmain(void)
{
	//应该考虑字符串代表的数值是否大于U32_MAX,但我懒
	unsigned char Data[] = "1114159265";  //数值=1114159265,注意字串的末尾有个隐藏的 \0,后面用sizeof计算长度时要减掉一
	unsigned int value = 0;
	//
	for(unsigned char i=0; i='0')?(Data[i]-'0'):(0));
	}
	//
	return value;
}

VS2012下运行成功截图
回顾C语言005--把一个十进制的ASCII数字字串 转换为 HEX数字_第1张图片

你可能感兴趣的:(C语言,字符串,HEX转换,数字字串)