Hej!
Tworzę swój własny skrypt na zamienianie liczb dziesiętnych na binarne (po wczytaniu z pliku i do pliku). Z tym, że nie chodzi mi o to, czy jest on poprawny.
Korzystam z funkcji while, który z nie do końca zrozumiałych mi powodów tworzy nieskończoną pętlę.
Podam to na przykładzie liczby 12 (bez względu na to, co się tam znajdzie, sytuacja zawsze jest taka sama)
int z=0;
string binarna=" ";
while(12/2!=0)
{
if(12%2==1)
{
binarna.insert(z,"1");
}
else if(12/2+1==1)
{
binarna.insert(z,"1");
break;
}
else if(12%2==0)
{
binarna.insert(z,"0");
}
12/2;
z++;
}
Mam nadzieję, że jest to nieco zrozumiałe. Jest to tylko fragment kodu sprawiający problemy. Wcześniejsze operacje zwracają poprawne wyniki.
W while'u sprawdza warunek - dopóki 12 podzielone na 2, nie będzie równe 0. Z tego, co zauważyłem warunek ten powinien działać poprawnie, gdyż C++ po ostatecznym podzieleniu 1/2 - do czego powinno dojść, gdyż wewnątrz while'a pojawia się operacja dzielenia 12 na 2 po każdym kroku - a C++ z dzielenia 1 przez 2, zwraca 0.
Fragmenty z "insert" służą wstawianiu do napisu (w tym również inkrementowane int z) - ale na tą chwilę nie jest to kluczowe, gdyż jeśli nie działa, to z pewnością znajdę inne rozwiązanie.
Na tą chwilę jestem bardzo początkującym i wszelkie algorytmy, takie jak zamiana z binarnych na dziesiętne, czy inne metody matematyczne, staram się tworzyć samemu. Na tym się niestety zatrzymałem i na razie nie wiem co dalej.