Blog (55)
Komentarze (1.1k)
Recenzje (0)

O bitach i liczbach binarnych ogółem

@arlidO bitach i liczbach binarnych ogółem22.03.2013 12:55

Witajcie. Wpis może wprawdzie nie jest zbyt lubiany ze względu na swój temat i jego dziedzinę (jakby nie patrzeć jest nią matematyka). Ale od królowej nauk nie uciekniemy :) W dzisiejszym wpisie chciałbym poruszyć temat liczb binarnych - tutaj dość ogólnie, jednak w planach są również dalsze wpisy. Tekst powstał dla znajomego, który poprosił mnie o lekkie wytłumaczenie o co z tym chodzi. No więc może nie będzie to super naukowe wytłumaczenie, ale postaram się opisać to dość łopatologicznie i zrozumiale. No to lecimy :P

Ale dlaczego 0 i 1?

To jest wbrew pozorom bardzo ciekawe pytanie. Przecież na co dzień jesteśmy przyzwyczajeni to systemu dziesiętnego. Dlaczego więc komputer, skoro jest taki mądry (a może jednak nie?) działa na systemie binarnym? Jest to na pozór bardzo proste. Można wręcz rzec, że zostało to “zapożyczone” z natury i przyrody. Ale zróbmy mały eksperyment. Niech “0” oznacza brak prądu, a 1”1” jest przepływ. Podejdźmy do włącznika światła w pokoju. Zależnie od tego jaka jest pora dnia czytania przez Ciebie wpisu masz włączone (stan “1”) lub wyłączone (odpowiednio stan “0”) światło. Załóżmy, że jest dzień i masz wyłączone światło. Co się stanie, jak krótko mówiąc “pstrykniesz” włącznik? Światło zapali się, gdyż dostarczysz mu prąd. Innymi słowy zmienisz stan światła z “0” na “1”. Choćbyś tysiąc razy przełączał włącznik i tak do wyboru masz tylko te dwa stany. Nie włączysz światła w “połowie” (nie mówię, o rozdzielaniu kontaktu na poszczególne żarówki :P). Spróbuj teraz wyobrazić sobie włączanie światła, gdybyś miał do wyrobu 10 stanów... Nie byłoby to prostsze. Drugi powód stosowania kodu binarnego, nie dziesiętnego to jego prostota - im mniej elementów, tym mniej zależności. Im mniej zależności - tym mnie usterek. Ale dobrze, mniejsza o to skąd i po co...

Bit bitem bita pogania

Co to bit, po co to jest itd. Tak po chłopsku mówiąc, bit to cyfra liczby binarnej, czyli jeden bit to jedna “1” lub “0” w zapisanej licznie. Krótko zapis

oznacza liczbę sześć zapisaną na 3 bitach. Ale czy możemy ją zapisać na innej liczbie bitów? Tak, podobnie jak w “naszym” (dziesiętnym systemie). Wystarczy dodać odpowiednią liczbę zer przed naszą liczbą. Przecież jest dla nas naturalne, że

Tak samo w systemie binarnym

Warto jednak zaznaczyć, ze podane powyżej liczby sześc choć zapisane w tym samym systemie (binarnym) różnią się liczba bitów na ilu zostały zapisane. Są to odpowiednio 3 i 5 bitów. Niemniej jednak nie zmienia to wartości liczby i nadal pozostaje ona szóstką.

I niby to 110 to 6?

Tak, 110 jest równe liczbie 6 w zapisie dziesiętnym. Ale od początku. W naszym systemie dziesiętnym mamy jak sama nazwa wskazuje 10 cyfr. Są to kolejno liczby od 0 do 9. W systemie binarnym mamy tylko dwie cyfry - 0 i 1. Pozostałych nie ma. I teraz powraca pytanie, jak zapisać liczbę 6 za pomocą tych zer i jedynek i skąd wiadomo, gdzie co wstawić. Otóż wbrew pozorom nie jest to trudne. Dla ułatwienia zrozumienia przyjmijmy taki zapis liczb:

gdzie:

X - liczba zapisana w systemie o podstawie b

W systemie binarnym podstawą jest liczba 2 (gdyż mamy dwie cyfry), w systemie dziesiętnym podstawa jest liczba 10 (mamy 10 cyfr służących o zapisu cyfr).

Dla przykładu omawianą liczbę 6 zapiszemy tak:

co czytamy jako “liczba sześć zapisana w systemie dziesiętnym”.

Dla systemu binarnego zapiszemy ją tak

co czytamy “liczba sześć zapisana w systemie binarnym”. Oczywiście

Zapis liczb dziesiętnych

By lepiej zrozumieć zapis liczby binarnej przypomnijmy wiadomości dotyczące znanych nam liczb w postaci dziesiętnej. Do tego celu weźmy inną, większą liczbę. Niech to będzie np. 6547

Jak wiemy cyfry w zapisie dziesiętnym są “pogrupowane” w ...tysiące, setki, dziesiątki,... Rozpiszmy zatem nasza liczbę:

Tak oto przedstawia się rozwinięcie liczby 6547 w systemie dziesiętnym. By lepiej zrozumieć skąd wzięły się poszczególne potęgi 10 (baza b ) ponumerujmy zaczynając od 0 wszystkie pozycje naszej liczby.

Tak oto, zaczynając od prawej

7 stoi na pozycji “0” 4 na pozycji “1” 5 na pozycji “2” 8 na pozycji “3”

Jak łatwo zauważyć liczba pozycji jest o 1 mniejsza od ilość cyfr (ilości bitów w przypadku liczb w systemie binarnym) naszej liczby. By uzyskać zapis liczby dziesiętnej (uzyskany powyżej) wystarczy teraz każdą pozycję przemnożyć poprzez bazę podniesioną do potęgi jaką jest “pozycja” danej cyfry. Tak więc:

Podstawiając bazę b=10 uzyskamy wcześniejsze wyprowadzenie. Identycznie jest z liczbami binarnymi. Można zatem zauważyć, że ogólnie liczbę w systemie o dowolnej podstawie b możemy zapisać jako:

gdzie C oznacza pojedynczą cyfrę (w przypadku liczb binarnych o lub 1), a jej dolny indeks - jej pozycję.

Zapis liczb binarnych

Sprawdźmy zatem czy nasz poprzedni wniosek, tj.

jest prawdziwy. Postępujmy zgodnie z wcześniejszymi ustaleniami. Wyznaczmy “pozycję” dla każdego bitu.

Przystąpmy do obliczeń.

Jeżeli podstawą naszego rozumowania jest system binarny, gdzie baza równa jest 2 mamy:

Jak widać uzyskaliśmy odpowiedź na pytanie postawione w akapicie i udowodniliśmy, że

Jak zapewne zauważyłeś, w przypadku, gdy bitem jaki mnożymy jest 0 w końcowym jego wyniku i tak otrzymamy 0. Możemy więc je pominąć, gdyż nie wniosła nic do wyniku, a obliczać jedynie bity z jedynką. Po drugie jakakolwiek liczba podniesiona do zerowej potęgi daje nam 1, więc to też miejmy na uwadze. Obie te zasady znacznie “zmniejszają” ciąg obliczeń i je usprawniają.

Czy zawsze muszę pisać takie ciągi?

Hmm.. nie :) Nie musisz. Otóż istnieje pewien dość prosty sposób na wypisanie binarnej wartości i jest przydatny szczególnie dla mniejszych liczb. Oczywiście są również sposoby i na te większe liczby, al eo tym później - na chwilę obecną zajmijmy się liczbami mniejszymi. Wypiszmy sobie (bez liczenia !) wartości binarne liczb od 1 do 16. Jak to zrobić? jest to na prawdę bardzo proste. W poniższych przykładach stosowany jest 4-btowy zapis. Jak wiesz

Pamiętasz jak wspomniałem, ze jakakolwiek liczba podniesiona do potęgi zerowej daje nam cyfrę 1? Wykorzystajmy to, by zapisać cyfrę 1 w systemie binarnym. Jak zapewne już zauważyłeś, wystarczy jeden bit, by zapisać dziesiętną cyfrę “1” w systemie binarnym. ten bit to “!”.

Możemy wykonać sprawdzenie:

Teraz wypiszmy pozostałe liczby “sposobem” Na czym on polega? Mianowicie zaczynamy od 0, gdzie w systemie binarnym mamy jak podałem wcześniej również same zera. Sposób polega na zamienianiu każdego wolnego “0” w poprzedniej liczbie w systemie binarnym na bit przeciwny, czyli jedynkę, z tym, że w poprzedniej licznie ostatni bit (pozycja 0) wynosi jeden, również jest negowany (zamieniany na wartość przeciwną). Popatrz. Kolejne zmiany względem poprzedniej liczby oznaczone są kolorem.

Jak pewnie zauważyłeś, liczba 16 nie może zostać zapisana w systemie binarnym na 4-bitach, gdyż jest ich za mało. W związku z tym został dodany skrajny 5-bit. Oczywiście można to tak ciągnąć dalej, jednak przecież dla wspomnianej wcześniej liczby 6547 nie będziemy wypisywać tylu pozycji. Istnieje i na to sposób.

Tworzymy tabelę:

Teraz na pierwszym miejscu w kolumnie Liczba_w_systemie_dziesiętnym wpisujemy naszą liczbę jaką chcemy zamienić na liczbę binarną i dzielimy ja przez 2. Jeżeli wynik jest z resztą - w kolumnie bit w danym wierszu wpisujemy “1”, jeżeli jest bez reszty - “0”. następnie kolejnym wierszu wpisujemy całkowita część z dzielenia. tabelę uzupełniamy dotąd, aż część całkowita z dzielenia wyniesie 0. Kolorem czerwonym zaznaczono bity. Kolorem niebieskim zaznaczono część całkowitą z dzielenia, którą przenosimy do kolejnego wiersza. Kolumna “Działanie” ma na celu pokazanie skąd biorą się poszczególne wiersze. Strzałka wskazuje kolejność zapisu bitów.

I tak mamy nasz wynik w systemie binarnym:

Polecam sprawdzić :)

Oczywiście na liczbach binarnych, podobnie jak na znanych nam liczbach dziesiętnych możemy wykonywać operacje matematyczne jak dodawanie, odejmowanie, lecz ten konkretny wpis traktuje jedynie o "wstępie" do liczb binarnych i ich zapisu.

Oczywiście każdy ma własne zdanie dotyczące danych kwestii nie zamierzam go w żaden sposób podważać, czy obrażać kogokolwiek w jakikolwiek sposób. Przepraszam także za ewentualne błędy.

Wybrane dla Ciebie
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.