【天梯】进制转换-1475 m进制转十进制

题目描述  Description

将m进制数n转化成一个十进制数 m<=16

题目保证转换后的十进制数<=100

输入描述  Input Description

共一行

n和m

输出描述  Output Description

共一个数

表示m进制的n化成十进制的数

样例输入  Sample Input

1010 2

样例输出  Sample Output

10

数据范围及提示  Data Size & Hint

乘权累加法

【1】求字符串长度

str L       L.length()和L.size()都可以  头文件 string.h

char L[100]   strlen(L)   头文件 string.h

【2】字符串和整形之间的转换  头文件#include <stdlib.h>

char L[100]     

int number=12345

itoa(number,L,10);把12345按照十进制写入L;

number=atoi(L);把L转化为整形,存入number;

itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制

【3】字符char和整形直接的转化

char c;
int a;
a=int(c)-'0';

1.int/float to string/array:

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。
● itoa():将整型值转换为字符串。
● ltoa():将长整型值转换为字符串。
● ultoa():将无符号长整型值转换为字符串。
● gcvt():将浮点型数转换为字符串,取四舍五入。
● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
● fcvt():指定位数为转换精度,其余同ecvt()。


2. string/array to int/float
C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。
● atof():将字符串转换为双精度浮点型值。
● atoi():将字符串转换为整型值。
● atol():将字符串转换为长整型值。
● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
	int m,l,ans=0;
	char n[1000];
	int a[100]={0};
	cin>>n>>m;
	int k=1;
	l=strlen(n);
	for(int j=0;j<=l-1;j++)
	{
		    if(int(n[j])<=int('9')){a[j]=int(n[j])-'0';}
			if(n[j]=='A'){a[j]=10;}
			if(n[j]=='B'){a[j]=11;}
			if(n[j]=='C'){a[j]=12;}
			if(n[j]=='D'){a[j]=13;}
			if(n[j]=='E'){a[j]=14;}
			if(n[j]=='F'){a[j]=15;}	
	}
	for(int j=l-1;j>=0;j--)
	{
	   ans=ans+k*a[j];
	   k=k*m;
	}
	cout<<ans;
	return 0;
} 

其他应用

#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
	int m,l,ans=0;
	char n[1000];
    m=47;
    itoa(m,n,16);
    l=strtol(n,NULL,16);//atoi只能进行10进制
    cout<<"n="<<n<<endl;
    cout<<"l="<<l;
	return 0;
} 

输出:n=2f  l=47


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值