//返回16进制字符串s对应的整数值,遇到任何一个非法字符都返回-1。
int HexToDec(char *s)
{
char *p = s;
//空串返回0。
if(*p == '')
return 0;
//忽略开头的'0'字符
while(*p == '0')
p++;
int dec = 0;
char c;
//循环直到字符串结束。
while(c = *p++)
{
//dec乘16
dec <<= 4;
//数字字符。
if(c >= '0' && c <= '9')
{
dec += c - '0';
continue;
}
//小写abcdef。
if(c >= 'a' && c <= 'f')
{
dec += c - 'a' + 10;
continue;
}
//大写ABCDEF。
if(c >= 'A' && c <= 'F')
{
dec += c - 'A' + 10;
continue;
}
//没有从任何一个if语句中结束,说明遇到了非法字符。
return -1;
}
//正常结束循环,返回10进制整数值。
return dec;
}
//输入16进制数返回10进制数
int func( int x)
{
int i, sum = 0;
for(i = 0 ; x!= 0; i++)
{
sum = (x %16) * Power(16,i)+ sum;
x = x/ 16;
printf("sumfor = %dn", sum);
}
return sum;
}
最后
以上就是阳光招牌最近收集整理的关于c语言函数16进制变10进制,C中16进制与10进制互转的全部内容,更多相关c语言函数16进制变10进制内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复