Преобразование двоичной строки C++ в десятичную: методы и примеры

Чтобы преобразовать двоичную строку в десятичное число в C++, вы можете использовать несколько методов. Вот несколько подходов:

Метод 1: использование функции stoi()

#include <iostream>
#include <string>
int main() {
    std::string binaryString = "101010";  // Example binary string

    int decimalNumber = std::stoi(binaryString, nullptr, 2);

    std::cout << "Decimal number: " << decimalNumber << std::endl;

    return 0;
}

Метод 2: преобразование вручную

#include <iostream>
#include <string>
int main() {
    std::string binaryString = "101010";  // Example binary string

    int decimalNumber = 0;
    int base = 1;

    for (int i = binaryString.length() - 1; i >= 0; i--) {
        if (binaryString[i] == '1') {
            decimalNumber += base;
        }
        base *= 2;
    }

    std::cout << "Decimal number: " << decimalNumber << std::endl;

    return 0;
}

Метод 3: использование набора бит

#include <iostream>
#include <bitset>
#include <string>
int main() {
    std::string binaryString = "101010";  // Example binary string

    std::bitset<32> bits(binaryString);
    int decimalNumber = bits.to_ulong();

    std::cout << "Decimal number: " << decimalNumber << std::endl;

    return 0;
}

Метод 4: использование строкового потока

#include <iostream>
#include <sstream>
#include <string>
int main() {
    std::string binaryString = "101010";  // Example binary string

    std::stringstream ss(binaryString);
    int decimalNumber = 0;
    ss >> std::bitset<32>(decimalNumber);

    std::cout << "Decimal number: " << decimalNumber << std::endl;

    return 0;
}