Zamienić string binarny na zwykłą liczbę

0

Potrzebuje zamienić stringa zapisanego binarnie na zwykla liczbe ale typu int odpowiadającą temu stringowi.

np.
"1010" = 10;

Proszę o wskazówki jeśli to się w ogóle da zrobić.

0

Da się to zrobić. Możesz użyć np. std::stoi

int x = std::stoi("1010", nullptr, 2);
0

Można też z operacją na stringu:

 #include <iostream>
#include <string>

int main(){
    std::string binary("10101010");
    int i=0;
    while(binary.size()){
        if(binary.at(0) == '0' || binary.at(0) == '1')
            i+=static_cast<int>(binary.at(0)-'0') << (binary.size()-1);
        binary.erase(0,1);
    }

    std::cout << "i=" << i << std::endl;
    return 0;
}
1

@Dziwny Terrorysta, trochę żeś przekombinował:

std::string binary("1111101");
int v = 0;

for(auto it = binary.begin(); it != binary.end(); ++it)
{
    v = (v << 1) | (*it - '0');
}

std::cout << "v=" << v << '\n';

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0