Opole, dn. 31 marca 2004
Laboratorium Algorytmów i Struktur Danych
Temat:
Analiza algorytmu konwersji liczby na postać binarną
Autor: Dawid Najgiebauer
Informatyka, sem. II, grupa lab. 11
Prowadzący: dr inż. Jan Sadecki
Temat
Napisać rekurencyjną funkcję wypisującą nieujemną liczbę całkowitą w zapisie dwójkowym.
Analiza, projektowanie
Celem badania jest wykonanie algorytmu dokonującego konwersji zadane liczby w postaci dziesiętnej na postać binarną. Przy użyciu rekurencji liczba ta w zapisie binarnym zostanie wyświetlona na ekranie.
Konwersja
Algorytm konwersji liczby dziesiętnej na jej postać binarną opiera się na ciągłym dzieleniu jej przez 2, gdzie reszty z dzielenia tworzą reprezentację binarną danej liczby. Dzielenia dokonujemy tak długo, aż cześć całkowita z dzielenia będzie równa 0.
Realizację tego algorytmu dla liczby 210 przedstawiono poniżej:
Liczba |
Reszta |
210 |
0 |
105 |
1 |
52 |
0 |
26 |
0 |
13 |
1 |
6 |
0 |
3 |
1 |
1 |
1 |
0 |
|
Następnie wynik odczytuje się od dołu tabelki.
W powyższym przypadku 210(10) = 11010010(2).
Implementacja algorytmu
void dec2bin(int liczba)
{
if (!liczba) return;
dec2bin(liczba/2);
cout << liczba%2;
}
Wyniki i wnioski z badania
Dzięki zastosowaniu rekurencji w łatwy sposób możliwe było uzyskanie wypisywania liczby w postaci binarnej, gdzie pierwszą cyfrę tej liczby poznajemy dopiero przy ostatnim dzieleniu, drugą - przy przedostatnim itd.
4 Dawid Najgiebauer
Wyniki badania 5
Temat 3
wypisz(liczba%2)
dec2bin(liczba/2)
N
STOP
T
liczba==0
dec2bin(int liczba)