蓝桥 十六进制转十进制

来源:互联网 发布:网络策划是什么 编辑:程序博客网 时间:2024/06/05 18:57

蓝桥 十六进制转十进制

都是应用数制的定义
一:###################### 直接法 #################

#include <iostream>#include <cstring>using namespace std;int main(){    string str;    cin>>str;    int n,i;    n=str.length();    long long a=0;    long long r=1;    for(i=n-1;i>=0;i--)    {        if(str[i]>='0'&&str[i]<='9')        {            a+=(str[i]-'0')*r;            r=r*16;        }        else if(str[i]>='A'&&str[i]<='F')        {            a+=(str[i]-'A'+10)*r;            r*=16;        }    }    cout<<a;    return 0;} 

二:###################### 间接法 #################
此法将16的权重用函数mul单独隔离开来,还用了i++和reverse代替i–

#include <iostream>#include <cstring>#include <algorithm>using namespace std;long long mul(int n){    long long s=1;    for(int i=1;i<=n;i++)    {        s*=16;    }    return s;}int main(){    long long a=0;    string str;     cin>>str;    reverse(str.begin(),str.end());    for(int i=0;i<str.length();i++)    {        int temp;        if(str[i]>='0' && str[i]<='9')        {            temp=str[i]-'0';        }        else            temp=str[i]-55;        a+=(temp*mul(i));    }    cout<<a;    return 0;} 

一:###################### 直接法 #################
附上一个小程序:二进制转换为10进制

代码块

#include <iostream>#include <cmath>using namespace std;int main(){    char er[32];     int shi=0;    for(int i=0;i<32;i++)    {        cin>>er[i];    }    int length=strlen(er);    for(int i=0;i<length;i++)    {        shi+=er[i]*pow(2,length-i);        cout<<"0000"<<endl;    }     cout<<shi<<endl;    return 0;}

目录

[TOC]来生成目录:

  • 蓝桥 十六进制转十进制
      • 代码块
      • 目录


原创粉丝点击