问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
此题跟上一题的十六进制转八进制相比就生得十分简单了,分析一下数据的取值范围:
- unsigned int 取值 0~4294967295
- int 取值 2147483648~2147483647
- unsigned long 最大值 4294967295
- long 取值2147483648~2147483647
- long long的最大值:9223372036854775807
- unsigned long long的最大值:18446744073709551615
使用自带的进制转换就可以解决。
解决方案
// hextoDecFormat.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int N;//N组数据需要转换进制
long long s;
scanf("%llx", &s);
//scanf_s("%llx", &s);
printf("%lld", s);
return 0;
}