#include<iostream>#include<cstring>#include<algorithm>#include<cmath>usingnamespace std;
string str;intmain(){getline(cin, str);int n = str.size();int sum=0;for(int i=0; i < n; i ++){int nums = str[i]-'0';//字符数字转化为int类型的数字
sum = sum + nums *pow(2, n-i-1);}
cout << sum << endl;return0;}
十进制转换为二进制:
思路:
十进制转化为
x
x
x 进制采用的是除
x
x
x 取余法(从下往上取余数)。
所以说我们需要不断模拟的是辗转相除法,然后对于余数进行存储,记住余数是不能相加求和的。要存储下来!
代码:
#include<iostream>#include<cstring>#include<algorithm>usingnamespace std;constint N =1e2+10;int a[N];//存储余数的!intmain(){int x;
cin >> x;int idx=0;while(x){
a[idx ++]= x %2;
x/=2;//除以所要转化的进制的基数。}reverse(a, a+idx);for(int i=0; i < idx; i ++)
cout << a[i];return0;}