二进制转十进制
#include"iostream"
#include"algorithm"
using namespace std;
int main(){
int a=10;
int i=1;
int j=0;
char pd[20];
while(i){
if(a==0){
i=0;
}
pd[j]=a%2+'0'; // +'0' 转字符
a=a/2;
j++;
}
reverse(pd,pd+j); //反转数组
for(int x=1;x<j;x++){
cout<<pd[x];
}
}
十进制转二进制
#include"iostream"
#include"algorithm"
#include"cmath"
using namespace std;
int main(){
char a[20];
int i=0;
while(1){
a[i]=getchar();
if(a[i]=='\n') break; //判断输入的是回车
i++;
}
int k=0;
int sum;
for(int j=i-1;j>=0;j--){
if(a[j]=='1'){
sum+=pow(2,k); //cmath头文件里的求幂函数
}
k++;
}
cout<<sum;
}
其他进制转十进制
#include"iostream"
#include"algorithm"
#include"cmath"
using namespace std;
int Atoint(string s,int radix) //s是给定的radix进制字符串
{
int ans=0;
for(int i=0;i<s.size();i++)
{
char t=s[i];
if(t>='0'&&t<='9') ans=ans*radix+t-'0'; //-'0' 字符转数字
else ans=ans*radix+t-'a'+10;
}
return ans;
}
int main()
{
string abc;
cin>>abc;
cout<<Atoint(abc,2);
}