- /* 将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;
- }