蓝桥 十六进制转十进制

蓝桥 十六进制转十进制

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

#include 
#include 
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<

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

#include 
#include 
#include 
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='0' && str[i]<='9')
		{
			temp=str[i]-'0';
		}
		else
			temp=str[i]-55;
		a+=(temp*mul(i));
	}
	cout<

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

代码块

#include 
#include 
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

目录

[TOC]来生成目录:

文章目录

  • 蓝桥 十六进制转十进制
      • 代码块
      • 目录
    • @[toc]

你可能感兴趣的:(OJ刷题)