poniedziałek, 10 kwietnia 2017

Zamiana systemu dziesiątkowego na binarny

System binarny, inaczej dwójkowy -pozycyjny system liczbowy, w którym podstawą jest liczba 2. Do zapisu liczb potrzebne są tylko dwie cyfry: 0 i 1.
Używał go już John Napier w XVI wieku, przy czym 0 i 1 zapisywał jako a i b. Ojcem nowoczesnego systemu binarnego nazywany jest Gottfried Wilhelm Leibniz, autor opublikowanego w 1703 roku artykułu Explication de l'Arithmétique Binaire.

Wykorzystanie systemu binarnego 
Powszechnie używany w elektronice cyfrowej, gdzie minimalizacja liczby stanów (do dwóch) pozwala na prostą implementację sprzętową odpowiadającą zazwyczaj stanom wyłączony i włączony oraz zminimalizowanie przekłamań danych. Co za tym idzie, przyjął się też w informatyce.

System dziesiątkowy
Pozycyjny system liczbowy, w którym podstawą jest liczba 10; do zapisu liczb stosuje się 10 cyfr: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Liczby zapisuje się jako ciąg cyfr, z których każda jest mnożnikiem kolejnej potęgi liczby 10. Niekiedy dla poprawy czytelności cyfry grupuje się po trzy (Okcydent) lub cztery (część Orientu). Część całkowitą i ułamkową oddziela separator dziesiętny.

Zmiana systemu dziesiątkowego na binarny
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: 67:2 |133:2 |116:2 |08:2 |04:2 |02:2 |01:2 |1   Co daje 1000011. Jak widzimy, wynik zgadza się. Widać również, że zawsze na samym końcu po podzieleniu będzie 0, zatem ostatnia liczba jest równa 1. Jeden podzielić na dwa zawsze wyjdzie 0,5 zatem wynik z resztą. Co za tym idzie - pierwsza cyfra w zapisie dwójkowym jest ZAWSZE RÓWNA 1. Nie tylko matematycznie można to udowodnić. W elektronice, również musi być taka postać rzeczy. Przyjęliśmy bowiem, że dla komputera brak przepływu prądu oznacza "0", natomiast przepływ prądu - "1". Sygnał zatem nie może zaczynać się od "0", gdyż jest to brak sygnału. Procesor nie wie, czy sygnał już się zaczął, czy jeszcze nie. Początek musi być "1" (jest sygnał).

Wg mnie najprostszym sposobem jest Dzielić za każdym razem przez 2 i wpisywać resztę 1 lub 0. Przykład: liczba 125 w systemie binarnym to 1111101 gdyż: 125:2=62 reszty 1 (62,5czyli 62 i 63 = 125) 62:2 = 31 reszty 0 31:2 = 15 reszty 1 15:2 = 7 reszty 1 7:2 = 3 reszty 1 3:2 = 1 reszty 1 1:2 = 0 reszty 1. Teraz wynik czytamy OD DOŁU DO GÓRY, czyli 1111101.
Teraz zamiana liczb binarnych na dziesiętną: Zaczynając od tyłu zapisujemy każdą potęgę liczby 2 zaczynając od 1 (1 2 4 8 16 32 64 128, itd) a następnie możymy odpowiednio wartości przez 0 lub 1. Następnie sumujemy wartości. Np 11101100 = 236 gdyż: lecąc od tyłu: 0*1 + 0*2 + 1*4 + 1*8 + 0*16 + 1*32 + 1*64 + 1*128 = 4+8+32+64+128= 236.
Co to jest system dwójkowy? Mówiąc najprościej jest to taki system, który do zapisu informacji wykorzystuje tylko 2 cyfry: 0 i 1, gdzie 0 oznacza brak impulsu a 1 oznacza przepływ impulsu. 

Kroki:
W pierwszej kolejności wpisuję liczbę jaką chcę zamienić, w tym przypadku jest to liczba 191919. Następnie tworzę dwie tabelki: LICZBA oraz RESZTA. Przechodzimy w komórkę A5 która będzie podstawą naszego rozwiązania. Pobieramy wybraną wcześniej liczbę, czyli wpisujemy w komórkę A5 komendę =G5 (czyli komórkę w której znajduje się nasza liczba). Kolejnym krokiem będzie przejście w niższą komórkę gdzie wpisujemy komendę: =JEŻELI(ORAZ(A5<>0;A5<>"");LICZBA.CAŁK(A5/2);"")  Teraz przechodzimy do obliczenia reszty. Wchodzimy w komórkę B5 w której wpisujemy komendę:
=JEŻELI(ORAZ(A5<>0;A5<>"");MOD(A5;2);"")       
Ostatnim krokiem jest po prostu skopiowanie obu komórek, aż dojdziemy do wartości 0. Naszym wynikiem jest liczba: 101110110110101111        

Rozwiązanie w Excel:
                       

Opracował: Michał A.