赞
踩
资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- int main()
- {
- //char hex[10000000],dec[20000000];
- char *hex,*dec;
- int i;
- unsigned long int sum=0,n;
- hex=(char *)malloc(sizeof(char));
- scanf("%s",hex);
- for(i=0;i<strlen(hex);i++)
- {
- switch(hex[i])
- {
- case '0':n=0*pow(16,strlen(hex)-i-1);break;
- case '1':n=1*pow(16,strlen(hex)-i-1);break;
- case '2':n=2*pow(16,strlen(hex)-i-1);break;
- case '3':n=3*pow(16,strlen(hex)-i-1);break;
- case '4':n=4*pow(16,strlen(hex)-i-1);break;
- case '5':n=5*pow(16,strlen(hex)-i-1);break;
- case '6':n=6*pow(16,strlen(hex)-i-1);break;
- case '7':n=7*pow(16,strlen(hex)-i-1);break;
- case '8':n=8*pow(16,strlen(hex)-i-1);break;
- case '9':n=9*pow(16,strlen(hex)-i-1);break;
- case 'A':n=10*pow(16,strlen(hex)-i-1);break;
- case 'B':n=11*pow(16,strlen(hex)-i-1);break;
- case 'C':n=12*pow(16,strlen(hex)-i-1);break;
- case 'D':n=13*pow(16,strlen(hex)-i-1);break;
- case 'E':n=14*pow(16,strlen(hex)-i-1);break;
- case 'F':n=15*pow(16,strlen(hex)-i-1);break;
- deflaut:break;
- }
- sum=sum+n;
- }
- printf("%lu\n",sum);
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。