To jest jeden z pierwszych wpisów które planuję wrzucać na wykop co jakiś czas. Wiem, że dla części z was to są banały ale swoje wpisy kieruję raczej do osób które nie mają styczności z informatyka/matematyka/elektronika
Zakładam więc swój tag #ciekawostkizestudiowdelfina
Być może część z was zastanawiała się co to jest ten kod binarny o którym każdy mówi w kontekście urządzeń cyfrowych.
Skąd on się wziął, i po co go używamy?
Dzięki temu systemowi liczbowemu możemy przechowywać dane w naszych komputerach.
Pewnie teraz pomyślicie ale w jaki sposób?
Skoro w komputerze możemy przechować cyfry 0, i 1 to dlaczego nie możemy przechowywać innych? Dlaczego tylko 0, i 1?
Odpowiedź jest bardzo prosta. Możemy to robić ale system dwójkowy jest najłatwiejszy do implementacji sprzętowej.
Komputer musi rozróżniać tylko dwa stany. Dla nas jest to 0 lub 1, natomiast dla komputera może to być sytuacja w której jest napięcie co odpowiada naszej 1, lub sytuacja w której tego napięcia nie ma co odpowiada naszemu 0.
Dobrym przykładem jest tutaj np. zapis danych na płycie cd gdzie plamka wypalona laserem oznacza 1,
natomiast jej brak to 0.
Jak widzicie system dwójkowy jest podstawowym systemem w naszych komputerach.
Teraz pojawia się pytanie, ale jak właściwie zapisać liczbę w systemie dwójkowym?
Weźmy np taki zapis dwójkowy „101” który oznacza 5 w systemie dziesiętnym.
Dlaczego akurat 5? Już tłumaczę
W tym systemie podstawową liczbą jest 2, więc dodajemy do siebie kolejne potęgi dwójki mnożąc odpowiednio przez 0, i 1 zaczynając od prawej strony.
Powróćmy zatem do 101. Pierwsza od prawej strony jest jedynka, mamy więc 1 * 2^0 = 1 * 1 =1, następnie jest 0 które pomnożymy przez kolejną potęgę dwójki 0 * 2^1 = 0 * 2 = 0, i na samym końcu znowu jedynka 1 * 2^2 = 1 * 4 = 4.
Teraz wystarczy zsumować te liczby i dostajemy 1 + 0 + 4 = 5.
Dla niektórych to może wydawać się już jasne ale jeśli ktoś nie do końca rozumie posłużę się przykładem w systemie którym operujemy na co dzień, czyli systemie dziesiętnym.
Weźmy liczbę 312 i potraktujmy ją w ten sam sposób w jaki potraktowaliśmy 101 w systemie dwójkowym. Będziemy każdą cyfrę z tych 312 mnożyli przez kolejny potęgi dziesiątki. Na początku mamy 2 * 10^0 = 2, potem 1 * 10^1 = 10,
i na koniec 3 * 10^2 =300. Po zsumowaniu 2+10+300 dostaniemy 312. Ciężko było by dostać inny wynik ponieważ przeszliśmy z systemu dziesiętnego na system dziesiętny, więc liczba nie mogła ulec zmianie.
Zauważcie że w ten sposób działa każdy system liczbowy. W systemie dwójkowym mieliśmy potęgi 2, w systemie dziesiętnym mieliśmy potęgi 10, a w systemie 16 mamy potęgi 16. Możemy wymyślić system znakowy o dowolnej ilości znaków i w każdym z nich będziemy przechodzili na system dziesiętny w ten sam sposób.
Warto zwrócić uwagę, że system dwójkowy potrzebuje 2 znaków do przekazania danych „0,1”.
System dziesiętny potrzebuje już 10 znaków „0,1,2,3,4,5,6,7,8,9”, w takim razie szesnastkowy będzie potrzebował 16, ósemkowy 8 itd.
Czy w takim razie może istnieć system jedno znakowy?
Teoretycznie tak, będziemy dodawali do siebie kolejne potęgi jedynki mnożone przez jedynkę.
Gdybyśmy chcieli zapisać liczbę 100 w systemie jedynkowym musielibyśmy zapisać sto jedynek. Gdybyśmy chcieli zapisać liczbę milion tych jedynek musiało by być milion, więc możemy go potraktować bardziej jako ciekawostkę niż jako kolejny system liczbowy.
#informatyka #gruparatowaniapoziomu #ciekawostki
Jest to jeden z moich pierwszych wpisów, więc zachęcam do krytyki 🙂