HUEL OJ-70 二进制数

 

题目描述

将一个二进制数,转换为对应的十进制数。


输入描述

输入一个二进制数,以回车结束。该二进制数为正数,长度不超过31。


输出描述

输出一个整数,为该二进制数对应的十进制数。


输入样例

100000000001

输出样例

2049

在 C++ 中,length()std::string 类的成员函数,用于获取字符串的长度(即字符的个数)。这个函数返回一个无符号整数类型 (size_t),表示字符串中字符的数量。

 

以下是一个简单的例子:

 

#include <iostream>
#include <string>

int main() {
    std::string myString = "Hello, World!";

    // 使用 length() 函数获取字符串长度
    std::size_t len = myString.length();

    std::cout << "Length of the string: " << len << std::endl;

    return 0;
}

 在这个例子中,myString.length() 返回字符串 "Hello, World!" 的长度,然后将结果存储在变量 len 中,最后输出字符串的长度。在实际使用中,length() 通常用于循环迭代字符串的每个字符或其他与字符串长度相关的操作。

在 C++ 中,可以通过下标访问字符串中的某一位字符。字符串的下标从 0 开始,可以使用方括号 [] 操作符来获取特定位置的字符。例如:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "Hello, World!";
    
    // 输出字符串中的第5个字符(下标为4)
    cout << "Character at index 4: " << str[4] << endl;

    return 0;
}

 正式做题

当我们将二进制数转换为十进制数时,我们需要了解二进制和十进制的表示方式。

在二进制数中,每一位的权重是2的幂次方,从右往左依次增加。例如,二进制数 1101 表示:

1×2^3+1×2^2+0×2^1+1×2^0

#include <iostream>
#include <cmath>
using namespace std;

int binaryToDecimal(string binary) {
    int decimal = 0;
    int length = binary.length();
    for (int i =0 ; i <= length - 1; i++) {
        if (binary[i] == '1') {
            decimal += pow(2, length - 1 - i);
        }
    }

    return decimal;
}

int main() {
    string binary;
    cout << "Enter a binary number: ";
    cin >> binary;

    int decimal = binaryToDecimal(binary);

    cout << "Decimal equivalent: " << decimal << endl;

    return 0;
}

以下是步骤的含义:

  1. 包含必要的头文件:

    cppCopy code
    
    #include <iostream> #include <cmath> using namespace std;
    
    这里包含了输入输出流头文件 iostream,以及数学库头文件 cmath,用于使用 pow 函数。

  2. 定义二进制转十进制函数:

     
    int binaryToDecimal(string binary) {
        int decimal = 0;
        int length = binary.length();
        for (int i =0 ; i <= length - 1; i++) {
            if (binary[i] == '1') {
                decimal += pow(2, length - 1 - i);
            }
        }
    
        return decimal;
    }
    • binaryToDecimal 函数接受一个表示二进制数的字符串,并返回对应的十进制数。
    • decimal 变量用于存储十进制结果,初始化为 0。
    • length 变量存储二进制字符串的长度。
    • 使用 for 循环从左到右遍历二进制字符串的每一位。
    • 如果当前位为 '1',则将对应的权重加到 decimal 中。
  3. 主程序:

     
    int main() {
        string binary;
        cout << "Enter a binary number: ";
        cin >> binary;
    
        int decimal = binaryToDecimal(binary);
    
        cout << "Decimal equivalent: " << decimal << endl;
    
        return 0;
    }
    
    • 用户被提示输入一个二进制数。
    • 用户输入的二进制数存储在字符串变量 binary 中。
    • 调用 binaryToDecimal 函数将二进制数转换为十进制数。
    • 输出转换后的十进制数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值