您的位置:首页 > 其它

将十六进制的字符串转换为十进制

2014-10-01 14:24 253 查看
/* 将16进制的数按字符串形式输入,*

* 然后按十进制形式输出。 */

#include <stdio.h>

#include <string.h>

#include <math.h>

#define LEN 10

int SixteenToTen(char *sixteenStr); // 用于将十六进制数的字符串转换为十进制数

int main()

{

char sixteenStr[10];

int tenNumber;

printf("输入表示十六进制的字符串: ");

gets(sixteenStr);

tenNumber = SixteenToTen(sixteenStr);

printf("输出转换后的十进制数: %d\n",tenNumber);

}

int SixteenToTen(char *sixteenStr)

{

int i, tenNumber = 0, n;

int len; // 用于存放字符串的长度

len = strlen(sixteenStr);

for (i = 0; *(sixteenStr+i) != '\0'; i++)

{

if ( *(sixteenStr+i) >= 'A' && *(sixteenStr+i) <= 'F' )

{

n = *(sixteenStr+i) - 'A'+10;

}

else if ( *(sixteenStr+i) >= 'a' )

{

n = *(sixteenStr+i) - 'a' + 10;

}

else

{

n = *(sixteenStr+i) - '0';

}

tenNumber += n*pow(16,--len);

}

return tenNumber;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: