二进制转十进制:
- 以字符串的形式读入二进制串。
- 获得该字符串的位数,即二进制的最高位是多少。
- 从左往右遍历 == 从高位往低位展开!
- 核心:按权展开,按位相加。
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
string str;
int main()
{
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;
return 0;
}
十进制转换为二进制:
思路:
- 十进制转化为 x x x 进制采用的是除 x x x 取余法(从下往上取余数)。
- 所以说我们需要不断模拟的是辗转相除法,然后对于余数进行存储,记住余数是不能相加求和的。要存储下来!
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e2 + 10;
int a[N]; //存储余数的!
int main()
{
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];
return 0;
}
文章来源地址https://www.toymoban.com/news/detail-529064.html
文章来源:https://www.toymoban.com/news/detail-529064.html
到了这里,关于二进制与十进制的转换【相互转换, C++】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!