二进制与十进制的转换【相互转换, C++】

这篇具有很好参考价值的文章主要介绍了二进制与十进制的转换【相互转换, C++】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

二进制转十进制:

  1. 以字符串的形式读入二进制串。
  2. 获得该字符串的位数,即二进制的最高位是多少。
  3. 从左往右遍历 == 从高位往低位展开!
  4. 核心:按权展开,按位相加。

代码:

#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;
}

十进制转换为二进制:

思路:

  1. 十进制转化为 x x x 进制采用的是除 x x x 取余法(从下往上取余数)。
  2. 所以说我们需要不断模拟的是辗转相除法,然后对于余数进行存储,记住余数是不能相加求和的。要存储下来!

代码:

#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

到了这里,关于二进制与十进制的转换【相互转换, C++】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包