Skocz do zawartości

Program Do Konwersji Liczb


Gość rgabrysiak

Rekomendowane odpowiedzi

Gość rgabrysiak

Witam

Mam napisać program konwertujący liczbę (n) z układu dziesiętnego do dwójkowego wg algorytmu

1)Znajdź największe k takie że 2 do potęgi k mniejsze,równe n

2)Zapisz 1 na pozycji k

3)Znajdz różnicę n - 2 do potęgi k, i dla malejących k sprawdzaj 1)

Jeśli 3) nie jest spełnione na k umieść 0

Bardzo proszę o wskazówkę bo nie mogę sobie poradzić

Z góry przepraszam za kłopot i pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Toż wskazówkę sam sobie napisałeś. Ale też podany przez Ciebie sposób nie jest najlepszy. O wiele sprawniej jest obliczać ilorazy (ściślej -- ich części całkowite) oraz reszty z dzielenia przez 2, tylko wtedy cyfry dostajesz w odwrotnej kolejności. Np.

liczba 18; reszta 0

iloraz 9; reszta 1

iloraz 4; reszta 0

iloraz 2; reszta 0

iloraz 1; reszta 1

iloraz 0; koniec.

Postać dwójkowa 18 jest 10010 (cyfry reszt od ostatniej do pierwszej).

Sprawdzam: (10010)_2 = 2^4 + 2^1 = 18. OK

 

Wg Twojego sposobu byłoby tak:

dla 18 2^n to będzie 16, czyli 2^4, n=4

piszę 1 na pozycji 4;

18-16 = 2

jeszcze nie koniec;

dla 2 2^n to będzie 2, czyli 2^1, n=1

piszę 1 na pozycji 1;

2 - 2 = 0

koniec.

Dostałem 10010, czyli to samo.

 

Konsultacji udzieliłem z życzliwości dla pytającego. Ale oprogramować musisz niestety sam. Zadań domowych nie odrabiamy, chyba że za siebie.

 

Zauważ też, że Twój problem nie ma nic wspólnego z Fedorą.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość rgabrysiak

Dziękuję za wskazówkę

Nie mogę zrozumieć jak przekazać

 

dla 18 2^n to będzie 16, czyli 2^5, n=5

piszę 1 na pozycji 5;

 

to do programu.

Próbuję zrobić równanie ale coś nie za bardzo działa

Odnośnik do komentarza
Udostępnij na innych stronach

Gość rgabrysiak

Sęk w tym że w programowaniu stawiam pierwsze kroki i za nic nie mogę sobie poradzić

 

Dobra programik już prawie działa (oczywiście napisany w C++) ale to nie koniec zabawy ponieważ mam go przenieść do JavaScriptu i z tym jest problem ponieważ po przeniesieniu go całkowicie nie działa.

Więc (_z tąd_ → stąd) ORT moje pytanie jak go przenieść z C++ do JavaScriptu

 

Nie pisz kolejnych postów pod własnymi, korzystaj z opcji edytuj /Karlik

Odnośnik do komentarza
Udostępnij na innych stronach

Musisz wziąć pod uwagę różnice w składni. Do tego są książki i dokumentacja online.

Jak zrobisz błąd składniowy w C++, to kompilator zatrzyma się i powie gdzie widzi problem. A JavaScript jest interpretowany, interpreter wykonije instrukcje kodu i przerywa działanie na błędzie.

Zakomentuj część kodu, zostaw tylko szkielet function(){ return..}, potem po kolei włączaj instrukcje.

Możesz też robić sobie wydruki kontrolne, albo okienka z komunikatami po kolejnych etapach. Jak wszystko będzie grać, to je usuniesz.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...