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ć.
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ć.
Da się to zrobić. Możesz użyć np. std::stoi
int x = std::stoi("1010", nullptr, 2);
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;
}
@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';
C
lub C++
<=03
http://www.cplusplus.com/reference/cstdlib/strtol/