Konwersja liczby dwójkowej (binarnej) na dziesiętną
Skoro już wiesz, po co nam system binarny, dowiesz się jak przeliczać go na nasz system dziesiętny. Weźmy sobie zatem jakąś liczbę zapisaną w systemie dwójkowym, np. 1000011. Zaczynamy od cyfr wysuniętych najbardziej na prawo. Najbardziej na prawo wysunięta jest cyfra 1, a więc tak jak poprzednio mnożymy ją przez podstawę systemu (czyli 2) z odpowiednią potęgą. Podstawą systemu jest 2. Zatem, cała konwersja ma postać: 1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 +0*2^4 + 0*2^5 +1*2^6 ("^" to znak potęgi), a to się równa: 1 + 2 + 0 + 0 + 0 + 0 + 64, czyli jest to 67 w systemie dziesiętnym.
Konwersja liczby dziesiętnej na dwójkową (binarną)
Teraz, skoro już umiesz konwertować liczby z zapisu dwójkowego na dziesiętny warto by było skonwertować je odwrotnie, to znaczy z zapisu dziesiętnego na dwójkowy. Gdybyśmy liczyli na piechotę, byśmy musieli sprawdzać kolejne wielokrotności liczby 2. Sposób ten raczej jest mało stosowany, zajmijmy się trochę lepszym. Jest to prosty sposób, wcale nie wymaga myślenia. Najpierw bierzemy liczbę, jaką chcemy skonwertować na zapis dwójkowy. Weźmy liczbę z poprzedniego rozdziału i sprawdźmy, czy nam się to zgadza. Zatem, liczba którą będziemy konwertować to 67. Sposób jest następujący: liczbę dzielimy przez 2 i jeżeli wynik będzie z resztą: zapisujemy 1, jeżeli nie - zapisujemy 0. Następnie znowu dzielimy przez 2 to co zostało z liczby, ale bez reszty. Taki proces trwa, aż zostanie 0 (zero). Otrzymane zera i jedynki zapisujemy w odwrotnej kolejności. Wyjaśni się to wszystko na konkretnym przykładzie. Zatem do dzieła:
No to może sam zacznę zamianę liczby 42 na system dwójkowy.
Jak pisałem, liczbę trzeba dzielić przez dwa aż zostanie zero i zapisywać resztę z dzielenia.
No to jedziemy:
42 / 2 = 21 reszta 0
21 / 2 = 10 reszta 1
10 / 2 = 5 reszta 0
5 / 2 = 2 reszta 1
2 / 2 = 1 reszta 0
1 /2 = 0 reszta 1
Teraz bierzemy te reszty zaczynając od dołu i dostajemy - 101010. Proste, nie?
Teraz jak chcemy zamienić to z powrotem na system dziesiętny, to naprościej nad każdą cyfrą poczynając od PRAWEJ strony, napisać sobie potęgę liczby 2 (bo to podstawa systemu jak 10 jest podstawą systemu dziesiętnego a 16 - szestastkowego), zaczynając od 2^0 (dwa do potęgi zero, czyli 1).
Patrząc od PRAWEJ strony mamy odpowiednio: 1, 2, 4, 8, 16, 32. Teraz po prostu musimy zsumować te liczby, które stoją NAD JEDYNKAMI, czyli 2+8+32 = 42. Dlaczego nad jedynkami? No bo mnożenie przez zero i tak da zero, więc nie musimy rozpisywać całości. Tak jest po prostu najszybciej. Rozpisując całość byłoby tak:
0*(2^0) +
1*(2^1) +
0*(2^2) +
1*(2^3) +
0*(2^4) +
1*(2^5) = 42
Nie przyjmuję takiej odpowiedzi do wiadomości najpierw pokaż, że przeczytałeś ten wątek i efekty swojej (nieudanej) pracy. Potem zobaczymy, gdzie zrobiłeś błąd.
Niestety na wytłumaczenie wszystkiego na żywo nie będziemy mieć czasu, a przy odrobinie dobrej woli wyczytacie prawie wszystko na forum, co będzie potrzebne do konkursu.
Na początek niech ktoś chociaż zacznie tą zamianę liczby 168 na system dwójkowy.
Wskazówka: zamianę liczb umożliwia nawet systemowy kalkulator, można sobie od razu samemu sprawdzić.
HEX = system szesnastkowy
DEC = dziesiętny
OCT = ósemkowy
BIN = dwójkowy
Zaczynasz od prawej, pierwsza jest jedynka, nie? Trzeba ją pomnożyć przez 2 (bo system dwójkowy) podniesione do potęgi zerowej (2^0=1, ten daszek to znak potęgi w informatyce)
Czyli: 1x2^0 = 1
Potem bierzesz następną cyfrę i mnożysz przez 2 do potęgi 1
Czyli: 0x2^1 = 0, nie?
Potem znowu następną mnożysz przez 2 do kolejnej potęgi czyli do potęgi 2
Czyli: 0x2^2 = 0
Rozpiszcie to dalej proszę i zsumujcie te wyniki, wyjdzie liczba w systemie dziesiętnym.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum