基础练习 十六进制转十进制

来源:互联网 发布:arm ubuntu 的启动参数 编辑:程序博客网 时间:2024/06/07 04:41

基础练习 十六进制转十进制  
时间限制:1.0s   内存限制:512.0MB
      
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535


代码:

#include<iostream>#include<cstring>#include<ctype.h>#include<cmath>using namespace std;int main(){    long long int sum=0;    char s[9];    cin>>s;    int n=strlen(s);    int k=n-1;    for(int i=0;i<n;i++)    {        if(isdigit(s[i]))   //isalpha            s[i]=s[i]-'0';        else            s[i]=s[i]-'A'+10;        sum+=s[i]*pow(16,k);        k--;    }    cout<<sum<<endl;    return 0;}

注意是long long int啊!!!十六进制转十进制数可能会很大

原创粉丝点击