Konwerter dziesiętno-binarny w C++

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Maciek T
Sędziwy Jeż
Sędziwy Jeż
Posty: 35
Rejestracja: 22 cze 2007, 13:12
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: LXDE
Architektura: x86
Lokalizacja: Kraków
Kontakt:

Konwerter dziesiętno-binarny w C++

Post autor: Maciek T »

Witajcie! Tworzę konwerter, działanie algorytmu mam już opracowane, jednakże cały czas coś nie idzie po mojej myśli - może ktoś pomoże :P

Kod: Zaznacz cały

#include <cstdlib>  //Biblioteka odpowiedzialna za czyszczenie ekranu
#include <iostream> //Biblioteka odpowiedzialna za "std"
#include <cmath>    //Biblioteka odpowiedzialna za pierwiastek kwadratowy z liczby



int main()
{

    int x;
    int reszta;
    int menu;
    int zamykanie;



        //Czyszczenie ekranu
system("cls");
        //Nagłówek i menu
std::cout << "-----------------------------------------------" << std::endl;
std::cout << "|Konwerter dziesietno-binarny by SandaU - 2012|" << std::endl;
std::cout << "-----------------------------------------------" << std::endl;
std::cout << "Wybierz numer pozycji i zatwierdz klawiszem Enter" << std::endl;
std::cout << "1. Przelicz liczbe dziesietna na binarna" << std::endl;
std::cout << "2. Przelicz liczbe binarna na dziesietna" << std::endl;
std::cin >> menu;


    //10>2
std::cout << "Podaj liczbe w systemie dziesietnym:" << std::endl;
std::cin >> x;

     [b]    do
         {
         std::cout << "Wynik dzielenia: ";
         std::cout << x/2 << x << std::endl;
         std::cout << "Reszta: ";
         std::cout << x%2 << reszta << std::endl;
         } while ( x>0 );
[/b]



    //2>10


    //Zamykanie programu
std::cout <<"Zamknac aplikacje? [0 - nie, 1 - tak]" << std::endl;
std::cin >> zamykanie;

 while (zamykanie == 0);

}
Sprawa jest następująca - we właściwej części kodu odpowiadającej za konwersję liczby (w pętli do-while) chciałem zrobić tak, by program liczył liczbę taką metodą jak się uczy w szkole - reszta z dzielenia itp. Tyle że program zamiast nadpisywać liczbę x po każdym dzieleniu i powtarzać kod dopóki x nie zrówna się z zerem, to występuje zapętlenie że wiecznie operuje na tych samych składnikach. Do tego nie mam pomysłu jak zrobić by zera i jedynki z reszty dzielenia były dopisywane do jakiejś zmiennej, a potem wyświetlane jako liczba po konwersji :) Pomoże ktoś?
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Re: Konwerter dziesiętno-binarny w C++

Post autor: beluosus »

Maciek T pisze:Tyle że program zamiast nadpisywać liczbę x po każdym dzieleniu
No taki jest problem, że tej liczby nie nadpisujesz. Prawdopodobnie masz złe pojęcie co robi ta linijka:
Maciek T pisze:

Kod: Zaznacz cały

         std::cout << x/2 << x << std::endl;
Zostanie wyświetlona wartość dzielenia x/2 a następnie x. Co w konsoli będzie wyglądało na jedną liczbę.

Kod: Zaznacz cały

			std::cout << "Wynik dzielenia: ";
			std::cout << x/2 << std::endl;
			std::cout << "Reszta: ";
			std::cout << x%2 << std::endl;
			x /= 2; // to samo co: x = x / 2;
Jeśli chciałbyś skorzystać z gotowego rozwiązania to masz w <bitset>.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości