试题 基础练习 十六进制转十进制
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
# include <stdio.h>
# include <math.h>
# include <string.h>
int main(void)
{
int i, len,t;
long long int N=0;
char a[8];
gets(a);
len = strlen(a);
for (i = 0; a[i] != '\0'; i++)
{
switch (a[i])
{
case'A':
t = 10; break;
case'B':
t = 11; break;
case'C':
t = 12; break;
case'D':
t = 13; break;
case'E':
t = 14; break;
case'F':
t = 15; break;
default:
t = a[i] - '0';
break;
}
N = N + t * pow(16,len-1-i);
}
printf("%I64d\n", N);
return 0;
}
printf("%I64d\n", N); windows平台下专用说明符%I64,表示64位整数
printf()输出格式
点击上处可获取相关知识;
这是一道ACM基础练习题,要求将不超过8位的正十六进制数字符串转换成正十进制数。输入为十六进制数如'FFFF',输出其对应的十进制数值65535。注意十六进制中A-F对应10-15。

2万+

被折叠的 条评论
为什么被折叠?



