Potřebovala bych helpnout, ve stringu mám uloženou posloupnost bitů a chci je převést na int. Jak na to?
string nove= "00000011";
int cislo = (int) nove; // chci aby cislo = 3
Děkuji za pomoc
To Eva :
Vytvoř si výslednou proměnnou a vynuluj ji.
Udělej si cyklus, který bude postupně procházet celý řetězec.
V každém běhu cyklu posuň bitově výslednou proměnnou o jedna vlevo.
A pokud je aktuální znak roven '1', proveď bitový součet výsledné proměnné s konstantou 1.
To petr.satka :
char *nove= new char [8];
nove[0]= '1';
nove[1]= '0';
nove[2]= '0';
nove[3]= '0';
nove[4]= '0';
nove[5]= '0';
nove[6]= '0';
nove[7]= '0';
int cislo = 0;
for(int i = 0; i<8; ++i){
cislo = cislo << 1;
if(nove[i]=='1'){
cislo = cislo & 1 ;
}
}
cout <<"c:" << cislo <<endl;
To Eva :
Součet je or, nikoliv and.
Aj takto by to malo fungovat:
#include <iostream>
#include <string>
#include <bitset>
#include <limits>
using namespace std ;
int main()
{
string str = "00000101" ;
int a = int(bitset<numeric_limits<unsigned int>::digits>(str).to_ulong());
cout << a;
}
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku