Archiwa autora: Daria

Język C – operacje bitowe

Operacje bitowe

  • negacja bitowa (NOT)(„~”)

not

 

 

 

  • koniunkcja bitowa (AND)(„&”)

and

 

 

 

 

  • alternatywa bitowa (OR)(„|”)

or

 

 

 

  • alternatywa rozłączna (XOR)(„^”)

xor

 

 

 

Przesunięcie bitowe

  • w lewo („<<„) – przemieszczenie bitów argumentu w lewo o określoną liczbę miejsc
  • w prawo („>>”) – przemieszczenie bitów argumentu w prawo o określoną liczbę miejsc

 

Lekcja 18: Dwuprzyciskowy sterownik diod LED

Na tej lekcji chce Wam zaproponować ciekawy układ dzięki któremu po naciśnięciu jednego z przycisków zapali się określona dioda. Układ zbudujemy na tranzystorach npn i pnp.

Ryc. 1 Schemat 2-przyciskowego sterownika diod LED.

Ryc. 1 Schemat 2-przyciskowego sterownika diod LED.

Jeśli dokładnie przyjrzycie się schematowi zapewne zauważycie, że składa się on z 2 identycznych części. Potraficie prześledzić kierunek przepływu prądu? Co stanie się po naciśnięciu przycisku S1 – spróbujcie określić to sami, a potem zerknijcie poniżej aby sprawdzić czy mieliście rację :)

Ryc. 2 Schemat przedstawiający przepływ prądu (czerwona linia) po naciśnięciu przycisku S1.

Ryc. 2 Schemat przedstawiający przepływ prądu (czerwona linia) po naciśnięciu przycisku S1.

Po naciśnięciu przycisku S1 prąd dopływający do bazy tranzystora T1 włączy go, to dość oczywiste, ale co z rezystorami? Jak je dobrać? Zacznijmy od rezystora R3. Przyjmijmy, że prąd I3 to 6mA. Najważniejsze przy doborze elementów w tym konkretnym naszym obwodzie jest aby niczego nie uszkodzić. Tranzystory mają pracować w dwóch stanach: nasyconym i zatkania.

I3 = UZAS – Uce / R3, gdzie Uce w czasie nasycenia będzie bliskie 0 zatem wartość w naszych  obliczeniach pomijamy

R3 = UZAS / I3 = 6V / 0,006A = 1kΩ

Przyjmę, że współczynnik wzmocnienia BC548B  ok β = 300

IbT1 = I3 / βT1 = 0,006A / 300 = 0,00002A = 20µA

R1 = (UZAS – Ube) / (10 x IbT1) = (6V – 0,7V) / (10 x 20µA) = 26500Ω ≈ 26kΩ (użyję 2 rezystorów 10kΩ)

R2 = Ube / (10 x IbT1) = 0,7V / 200µA = 3,5kΩ (użyję rezystorów 2,2kΩ i 1kΩ)

Prąd przepływający przez tranzystor T1 włącza tranzystor T2. Uwaga! Zwróć uwagę na to, że tranzystor T1 to tranzystor npn, a tranzystor T2 to tranzystor pnp – prąd IbT2 płynie od tranzystora T2 w kierunku T1. Z uwagi na ten różny kierunek przepływu prądu w obliczeniach powinniśmy używać znaku „+” i „-„, ale to trochę zmniejszy ich czytelność, przez co świadomie zdecydowałam się je pominąć.

Wróćmy do obliczeń przyjmując, że współczynnik wzmocnienia BC557B β = 300, a prąd IT2 = 50mA:

IbT2 = IT2 / β = 0,05A / 300 = 166µA

R4 = UZAS / IbT2 = 6V / 166µA ≈ 36kΩ (użyję rezystora 47k)

R11 = UZAS /  IbT2 = 6V / 166µA ≈ 36kΩ (użyję rezystora 47k)

Po złożeniu na płytce stykowej mój układ wygląda tak:

img_0114

Ryc. 3 Zdjęcie obwodu złożonego na płytce stykowej zgodnie ze schematem z ryc. 1.

a tak działa:

Ryc. 4 Po zwarciu przełącznika S1 (tu zastąpionego zworką) świeci się dioda żółta.

Ryc. 4 Po zwarciu przełącznika S1 (tu zastąpionego zworką) świeci się dioda żółta.

Ryc. 5 Po zwarciu przełącznika S2 (tu zastąpionego zworką) świeci się dioda czerwona.

Ryc. 5 Po zwarciu przełącznika S2 (tu zastąpionego zworką) świeci się dioda czerwona.

Na początku napisałam, że układ jest ciekawy, a widzicie że chodzi tylko o zapalenie diody… No i dlaczego jest on taki skomplikowany, jest tyle tranzystorów… Otóż, ten układ można wykorzystać podczas konstruowania robota! Wystarczy diodę zastąpić silnikiem, a uzyskamy sterownik, dzięki któremu robot może jeździć do przodu – po naciśnięciu jednego z przycisków, i do tyłu – po naciśnięciu drugiego przycisku. Zauważcie, że prąd przepływający przez pierwszy tranzystor (∼6mA) jest dużo mniejszy od tego przepływającego przez kolejny tranzystor (∼50mA), w ten sposób możemy małym prądem sterować silnikiem przez który przepływa duży prąd. Na sam koniec odpowiem co się stanie po naciśnięciu dwóch przycisków naraz. W obwodzie będzie płynął prąd zwarcia, którego wartość zależna będzie od doboru elementów.

Lekcja 17: Tester baterii

Wzmacniaczowi operacyjnemu LM358 poświęciłam lekcję 11. Dziś wykorzystamy go do zbudowania ciekawego układu – prostego testera baterii.

d1

Ryc. 1 Schemat prostego testera baterii.

Układ zasilany jest napięciem 12V. Za koszykami baterii znajduje się stabilizator napięcia, dzięki któremu do układu LM358 dociera napięcie 5V. Przypominam, że nóżka 3 to tzw. wejście nieodwracające We(+), a nóżka 2 to wejście odwracające We(-). Jeśli napięcie na We(+) > We(-) na wyjściu otrzymamy napięcie zbliżone do dostarczonego do wzmacniacza napięcia zasilania, a czerwona dioda LED zaświeci. W przeciwnym razie, tzn. gdy We(+) ≤ We(-) na wyjściu otrzymamy napięcie bliskie 0V, dioda nie zaświeci.

Nóżkę 3 wzmacniacza będziemy łączyć z jednym z biegunów baterii. Druga nóżka przez potencjometr 10kΩ łączy się z masą i plusem zasilania.  Rezystor 1MΩ jak i kondensator 100nF zapobiegają wzbudzaniu układu. Złóżcie układ na płytce stykowej,

zmontowany_uklad

Ryc.2. Widok zmontowanego układu

a następnie tak ustawcie pokrętło potencjometru, aby napięcie na woltomierzu wskazało 1,45V (ryc.3). Czemu taka wartość? Będziemy badać baterie-paluszki o napięciu znamionowym 1,5V. Gdy są nowe ich napięcie wynosi ok. 1,6V, gdy są  rozładowane ich napięcie wynosi np 1,17V lub mniej. Napięcie 1,45V oznacza, że bateria jeszcze się do czegoś nadaje, może nie do urządzeń typu aparat fotograficzny, ale do pilota do telewizora jak najbardziej :)

pomiar_ref_1_45V

Ryc. 3. Widok pomiarów napięcia na potencjometrze pomiędzy masą a środkową nóżką potencjometru.

pomiar_sprawnej_baterii

Ryc. 4. Pomiar sprawnej baterii, dioda LED świeci.

Jeśli do układu podłączymy dobrą, nową baterię napięcie na We(+) będzie wynosić np. 1,6V i będzie większe od napięcia na We(-), które wynosić będzie 1,45V. We(+) > We(-) więc dioda się zaświeci. W naszym przypadku znaleźliśmy baterię lekko rozładowaną, która ma napięcie 1,57V patrz ryc. 5

bat_1_57V

Ryc. 5. Pomiar baterii nadającej się jeszcze do użytku.

Jeśli do układu podłączymy zużytą baterię napięcie na We(+) będzie wynosić np. 1,17V, i będzie mniejsze od napięcia na We(-), które wynosić będzie 1,45V. We(+) < We(-) więc dioda się nie zaświeci.

slaba_bateria_1_17V

Ryc.6. Pomiar rozładowanej baterii.

Teraz nieco zmodyfikujemy nasz obwód dodając do niego przekaźnik.

przekazniki

Ryc. 7 Przekaźniki elektromagnetyczne: a) na 12V, b) na 5V.

Przekaźnik jest to element mechaniczny i zarazem elektryczny, który wewnątrz posiada przełączane styki (elementy łączeniowe) jak również cewkę, która wytwarza pole magnetyczne.

W swoich zestawach podzespołów możecie znaleźć przekaźnik elektromagnetyczny. Jest to typ przekaźnika, który działa jak elektromagnes. Prąd przepływający przez cewkę przekaźnika (nawinięte zwoje drutu nawojowego) powoduje wytwarzanie pola magnetycznego, które przyciąga żelazną kotwiczkę, co z kolei powoduje zamknięcie lub otwarcie odpowiednich styków. Na ryc 8. pokazano najprostszy przykład przekaźnika pokazujący jego ideę działania. W naszym przypadku żelazna kotwica jest zarazem jednym ze styków przez, który może płynąć prąd.

zasada dzial przek

Ryc. 8 Schemat działania przekaźnika elektromagnetycznego.

W zależności od tego jaki posiadasz przekaźnik: na 5V (ryc. 7b) czy na 12V (ryc. 7a)  lub inny, złóż na płytce stykowej odpowiednio obwód z ryc. 10a lub 10b. W moim układzie zastosowałam przekaźnik  HFD 23 na napięcie 12V.

hfd23_12v

Ryc. 9. Widok przekaźnika HFD23 na napięcie 12V.

Jak sprawdzić przekaźnik, którego nie znamy a chcemy się  dowiedzieć,  które wyprowadzenia do czego służą?

Bardzo pomocny w tym zadaniu będzie nasz multimetr. Ustawmy go na pomiar rezystancji na zakres np 2k om, a następnie przykładajmy sondy do poszczególnych par nóżek przekaźnika, sprawdzając jaka będzie rezystancja między nimi. W ten sposób musimy odnaleźć parę nóżek między którymi rezystancja będzie największa (np. powyżej 2 omów) oraz parę nóżek między którymi rezystancja będzie najmniejsza (rzędu 1 – 2 oma (w rzeczywistości zwarte styki przekaźnika mają rezystancję znacznie mniejszą ale nasze multimetry kiepsko sobie radzą z pomiarem małych rezystancji)).

Duża rezystancja  będzie świadczyć o tym, że znaleźliśmy cewkę, która wytwarza pole magnetyczne. Jeżeli przyłożymy napięcie do wyprowadzeń o dużej rezystancji to przez cewkę popłynie prąd zaś styki, w zależności od rodzaju przekaźnika:

  • zewrą się – taki styk przekaźnika określa się mianem normal open (normalnie otwarty, gdy nie przykładamy do cewki napięcia, styki są otwarte, nie mają ze sobą połączenia, a multimetr nic nie pokaże) – tego typu przekaźników będziemy używać,
  • rozewrą się – taki typ styków przekaźnika określa się mianem normal conection (normalnie zwarte, gdy nie przykładamy do cewki napięcia, styki są zwarte).

Mała rezystancja będzie oznaczać, że znaleźliśmy zwarte styki przekaźnika. W przypadku przekaźników typu normal open między dwoma nóżkami nie będzie w ogóle rezystancji, ponieważ gdy przez przekaźnik nie przepływa prąd pozostają one rozwarte (nie mają ze sobą połączenia).

 

d2

Ryc. 10. Schemat obwodu z przekaźnikiem: a) na 5V, b) na 12V.

zmontowany_uklad_z_przekaznikiem

Ryc. 11. Widok zmontowanego układu wraz z przekaźnikiem i dodatkową diodą LED w obwodzie styków przekaźnika.

Jeśli napięcie dopływające do wejścia nieodwracającego LM358 będzie większe od tego na wejściu odwracającym, czyli We(+) > We(-) na wyjściu otrzymamy napięcie, które spowoduje przepływ prądu w obwodzie bazy i tym samym załączy tranzystor. Przez cewkę przekaźnika i przez tranzystor (w obwodzie kolektor-emiter) zacznie płynąć prąd, który  wytworzy pole magnetyczne, a to z kolei spowoduje zamknięcie styku i przepływ prądu przez diodę LED.

Jeśli napięcie na wejściach wzmacniacza ulegnie zmianie i We(+) ≤ We(-) na wyjściu otrzymamy napięcie bliskie zeru, które będzie zbyt niskie, aby wymusić przepływ prądu w obwodzie bazy – tranzystor będzie wyłączony. W konsekwencji przez przekaźnik także przestanie płynąć prąd… ale na rdzeniu na, którym nawinięta jest cewka pozostanie zmagazynowana energia która musi gdzieś zostać oddana! Dlatego właśnie w obwodzie blisko cewki przekaźnika znajduje się dioda szybka 1N4148, która zewrze przekaźnik do plusa. Gdybyśmy zapomnieli o tej diodzie projektując nasz układ (a jest to dość częsty błąd początkujących elektroników) energia z rdzenia przekaźnika spowoduje powstanie wysokiego napięcia na zaciskach cewki co spowoduje uszkodzenie tranzystora!

Po co stosuje się przekaźniki? Wyobraźmy sobie pralkę (lub jakiekolwiek inne urządzenie) podłączone do sieci zasilającej ~230V. Tak wysokie napięcie jest potrzebne do zasilenia np. silnika obracającego bębnem pralki, ale zupełnie nie nadaje się do zasilania programatora, który wymaga znacznie niższego napięcia. Dzięki przekaźnikowi niewielki prąd płynący od programatora pralki o napięciu powiedzmy 12V załącza silnik zasilany 230V.

pralka

Ryc. 12 Schematyczny rysunek przedstawiający sposób załączania silnika obracającego bębnem pralki przy pomocy niewielkiego prądu płynącego z programatora.

Abstrahując od naszego dzisiejszego tematu w schemacie z pralką pojawiły się dwa nowe oznaczenia podzespołów na schemacie:

prostownik

mostek prostowniczy (mówiliśmy o nich na lekcji 7 – jest to po prostu inny jego zapis)

transformator

transformator

Transformator przenosi energię elektryczną drogą indukcji z jednego obwodu elektrycznego do drugiego. Prąd przemienny płynący po stronie pierwotnej transformatora powoduje zmianę prądu płynącego po wtórnej stronie transformatora. Oznacza to, że zmiany pola magnetycznego w obwodzie elektrycznym przez który przepływa prąd zmienny powoduje powstanie siły elektromotorycznej. Transformator jest często wykorzystywany (tak jak w przykładzie z pralką) do zmiany napięcia  sieci ~230V na niskie napięcie potrzebne do zasilenia urządzenia elektronicznego np ~12V.

        W układach sieci zasilającej (sieci energetyki zasilającej nasze domy, mieszkania oraz zakłady pracy) również stosowane są transformatory. Mogą one obniżać  napięcie  np z 15kV na 230V lub podwyższać np z 15kV  na 110kV itp. Idąc ulicą można zauważyć wysokie słupy z długimi przewodami (tzw linie napowietrzne) w zależności od budowy takiego słupa można wywnioskować jakie napięcie na nich występuje. W żadnym wypadku nie można dotykać słupów ani na nie wchodzić gdyż grozi to porażeniem prądem. W szczególnych przypadkach nawet  przebywanie blisko linii napowietrznej może stanowić zagrożenie życia. Tak może się zdarzyć np jadąc traktorem po polu gdzie bardzo nisko jest zawieszona linia napowietrzna. Dlaczego?

Dość ciekawą dla nas informacją może być fakt, że  wytrzymałość izolacji pomiędzy dwoma przewodnikami (np. drutami bez izolacji) w przestrzeni powietrznej wynosi ok 1000V na 1mm odległości. Oznacza to, że zbliżając do siebie dwa przewodniki na odległość mniejszą od  1mm po przyłożeniu napięcia 1000V może nastąpić wyładowanie (przeskok iskry). Jeżeli natomiast odległość jest większa przeskok iskry nie powinien wystąpić (wszystko jeszcze zależy od wilgotności powietrza, zanieczyszczenia elektrod itd). Powyższa informacja jest bardzo ważna gdyż związana jest z naszym bezpieczeństwem  – nie zawsze trzeba dotknąć bezpośrednio przewodu będącego pod napięciem aby zostać porażonym prądem. Porażenie prądem może nastąpić z większej odległości.

Lekcja 16: NE555 – generator

Dziś przyjrzymy się bliżej bardzo ciekawemu i popularnemu układowi NE555.

Na tej lekcji wykorzystamy go do budowy generatora przebiegu prostokątnego. Podobny generator budowaliśmy już na lekcji 12 z układu CD40106. Teraz nasze zadanie jest o tyle łatwiejsze, że wystarczy otworzyć notę katalogową układu (dostępną tutaj) i sprawdzić co na ten temat mówi producent.

W rozdziale „Application information” znajdziemy przykłady wykorzystania tego układu. Na tej lekcji zbudujemy generator na podstawie danych zawartych w podrozdziale „Astable operation”.

Schemat 13 na stronie 7 pokazuje jak należy poprawnie podłączyć układ.

ryc1

Ryc. 1. Schemat ideowy układu generatora na NE555 zaczerpnięty z karty katalogowej producenta.

Napięcie jakie należy doprowadzić do układu ma mieścić się w przedziale od 5 do 15V. Nasze szeregowo połączone koszyki baterii  dają napięcie 12V. Dodatkowo aby mieć stabilną wartość napięcia zasilającego układ  wykorzystamy stabilizator napięcia +5V.

Mój schemat układu wygląda następująco:

ryc2

Ryc 2. Schemat ideowy układu generatora zbudowanego w oparciu o układ NE555

Przyjrzyjmy się zasadzie działania układu.

Kondensator C jest ładowany przez prąd przepływający przez rezystory RA i RB. Gdy się naładuje, 7 nóżka układu NE555 zostaje zwarta do masy (na schemacie przedstawiającym budowę wewnętrzną NE555 widać, że jest ona połączona do masy za pomocą tranzystora), i to właśnie

ryc3b

Ryc. 3. Schemat ideowy wnętrza układu NE555

przez nią następuje rozładowanie kondensatora C. Gdy rozładuje się on do pewnego poziomu prąd przestaje płynąć przez nóżkę 7 NE555 i znów kondensator ładuje się przez prąd przepływający przez rezystory RA i RB.

Cykl ładowania i rozładowywania kondensatora C wpływa na przebieg napięcia jakie otrzymujemy na wyjściu (nóżka 3), co obrazuje schemat 14 noty katalogowej:

ryc5

Ryc. 4. Przebieg napięcia wyjściowego oraz napięcia na kondensatorze

Gdy kondensator się naładuje na wyjściu układu NE555 otrzymujemy napięcie, które powoduje przepływ prądu przez tranzystor BC547B oraz przepływ prądu przez diodę LED, a tym samym jej świecenie. Podczas rozładowywania kondensatora na wyjściu napięcie ok 0V zatem  tranzystor jak i dioda pozostają wyłączone.

Zasada działania naszego układu obrazują poniższe schematy:

ryc4

Ryc. 5. Schematy ideowe przedstawiające przepływ prądu w wybranych punktach obwodu podczas a) ładowania; b) rozładowywania kondensatora C.

Jak dobrać wartości poszczególnych podzespołów w naszym układzie? Zacznijmy od rezystora Rd. Załóżmy, że spadek napięcia na diodzie LED to 2V, a natężenie przepływającego przez nią prądu to 20mA.

Rd = (Vcc – Ud) / Id

Rd = (5V – 2V) / 20mA

Rd = 150Ω

Zanim przejdziecie do obliczenia rezystancji Rb zmierzcie współczynnik wzmocnienia. U mnie wynosi on 330.

Ib = Ic / β

Ib = 20mA / 330

Ib = 60μA

Rb = Vcc / Ib

Rb = 5V / 60μA

Rb = 83kΩ

Dobieramy dostępny w naszym zestawie rezystor o wartości Rb = 100kΩ. Prąd kolektora minimalnie się zmieni (zmniejszy się) jednak nie przeszkadza to w właściwym działaniu układu i dioda LED nadal pozostanie dobrze widoczna.

Jak dobrać rezystory RA i RB? Pomoże nam w tym nota katalogowa – pod schematem naszego układu (figure 13) znajdziemy takie oto wzory:

- na częstotliwość otrzymywanego na wyjściu przebiegu prostokątnego:

f = 1 / T = 1,44 / (RA + RB) C

- na czas ładowania kondensatora C (w tym czasie na wyjściu sygnał jest wysoki)

tH = 0,693 (RA + RB) C

- na czas rozładowywania kondensatora C (w tym czasie na wyjściu jest niski)

tL = 0,693 (RB) C

Skoro znamy wzory, trzeba przyjąć pewne założenia: kondensator C będzie miał pojemność 100uF, będzie się ładował 4 sekundy, a rozładowywał w ciągu 1 sekundy.

tL = 0,693 (RB) C

1s = 0,693 x RB x 0,0001F

RB = 1s / (0,693 x 0,0001F)

RB = 14430Ω

tH = 0,693 (RA + RB) C

4s = 0,693 (RA + 14430Ω) 0,0001F

RA = 43290Ω

W miejsce RA przyjmiemy rezystory: 47kΩ, , a w miejsce RB rezystory: 10kΩ, 4,7kΩ.

Częstotliwość otrzymanego na wyjściu układu NE555 przebiegu prostokątnego:

f = 1,44 / (RA + RB) C

f = 1,44 / (47kΩ + 14,7kΩ) 0,0001F

f = 0,18Hz

A oto mój układ na płytce stykowej.

ne555_foto_pcb_blog

Ryc. 6. Widok zmontowanego układu na płytce stykowej

Dodatkowo dołączam link do przydatnego prostego programu, który parametry układu  obliczy za nas. Należy jedynie podać wartości czasów jakie nas interesują aby układ generował impulsy według naszych potrzeb. Można  również zadać wartości rezystancji a obliczone zostaną czasy impulsów oraz częstotliwość. Program dodatkowo oblicza elementy potrzebne do  obwodu z tranzystorem można go ściągnąć tu

program_Ne555_screen

Ryc. 7. Zrzut ekranu z programu do obliczania elementów do układu NE555

Program jest bardzo prosty w obsłudze, wystarczy wpisać wartości w odpowiednie pola a otrzymamy wynik. Warto podczas wpisywania wartości pamiętać aby nie wprowadzać np liter gdyż program w obecnej wersji nie jest zabezpieczony na taką ewentualność. Wpisanie litery spowoduje błąd, który wyłączy program.

Systemy liczbowe

Zgodnie z definicją system liczbowy jest jedynie zbiorem reguł odnoszących się do zapisu i nazewnictwa liczb. Innymi słowy ta sama liczba, mimo że będzie oznaczać tą samą ilość czegoś w zależności od przyjętego systemu liczbowego może mieć różny zapis i nazwę.

np. liczba 235 w systemie dziesiętnym odpowiada liczbie 11101011 w systemie dwójkowym oraz liczbie EB w systemie szesnastkowym

SYSTEM DZIESIĘTNY

Jest to system liczbowy którym posługujemy się na co dzień. Opiera się on na dziesięciu cyfrach: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Z tych cyfr możemy zbudować każdą liczbę. Zasada jest prosta: po cyfrze 9 występuje liczba 10, którą tworzymy poprzez zastąpienie cyfry 9 cyfrą 0 i postawienie przed nią jedynki. To samo dzieje się gdy dojdziemy do liczby 19. Następna w kolejności jest liczba 20 utworzona poprzez zastąpienie 9 cyfrą 0, a jedynki cyfrą 2.

Jako przykład weźmy liczbę 235. Przyjrzyjmy się jej: cyfra 2 to cyfra setek, cyfra 3 to cyfra dziesiątek, a cyfra 5 to cyfra jedności. Wobec powyższego liczbę 235 możemy zapisać jako:

200 + 30 + 5

czyli 2 x 100 + 3 x 10 + 5 x 1

czyli 2 x 102 + 3 x 101 + 5 x 100

SYSTEM DWÓJKOWY (BINARNY)

Omówiliśmy już algebrę Bool’a, która operuje zmiennymi o wartościach 0 i 1, jak również układy logiczne (lekcja 12, 13 i 14), które obecność określonego sygnału odczytywały jako 1, a jego brak jako 0. W związku z powyższym na pewno rozumiecie dlaczego komputery, których procesory są zbudowane z licznych układów logicznych posługują się systemem dwójkowym.

System dwójkowy opiera się jedynie na dwóch cyfrach: 0 i 1.

Z tych cyfr możemy zbudować każdą inną liczbę. Po cyfrze 0 i 1 występuje liczba 10 (odpowiadająca liczbie 2 w systemie dziesiętnym) – jako że w systemie dwójkowym nie ma większej cyfry od 1 zastępujemy ją cyfrą 0 i dodajemy przed nią cyfrę 1 (w analogiczny sposób powstała liczba 10 w systemie dziesiętnym) w ten sposób otrzymujemy cyfrę 10 rozumianą jako  zestawienie cyfry jeden i cyfry zero.

Następne cyfry dziesiętne: 3, 4 w systemie dwójkowym zapisujemy jako 11, 100. Abyście łatwiej mogli wychwycić regułę zapisu liczb w systemie dwójkowym przyjrzyjcie się poniższej tabeli:

sys dwojkowy2Zauważcie, że tak w systemie dziesiętnym jak i dwójkowym nie ma liczb zaczynających się od „0”!

Konwersja (przekształcenie) liczby dwójkowej na dziesiętną:

Jako przykład posłuży nam liczba dwójkowa 11101011. Każdą z cyfr mnożymy przez malejącą potęgę liczby 2:

11101011

1 x 27 + 1 x 26 + 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 2 x 20

128 + 64 + 32 + 0 + 8 + 0 + 2 + 1 = 235

liczba dwójkowa: 11101011 = liczba dziesiętna 235

Konwersja liczby dziesiętnej na dwójkową:

Ponownie przekształćmy liczbę dziesiętną 235 na liczbę dwójkową. W tym celu należy podzielić ją przez 2 – jeśli wynik wyjdzie z resztą po przecinku na marginesie zapisujemy cyfrę 1, a jeśli wynik będzie liczbą całkowitą (bez reszty) wtedy zapisujemy 0. Następnym etapem jest podzielenie wyniku poprzedniego dzielenia (pomijając to co uzyskaliśmy po przecinku) przez 2 i ponowne zapisanie 0 lub 1 na marginesie. Otrzymany ciąg zero-jedynkowy odczytujemy od dołu do góry:

konwersja sys dwojkowyliczba dziesiętna 235 = liczba dwójkowa 11101011

SYSTEM SZESNASTKOWY (HEKSADECYMALNY)

Jest to system liczbowy którego zaletą jest przede wszystkim zapis dużych liczb w sposób nie zajmujący dużo miejsca. Z tego powodu jest on powszechnie stosowany w programowaniu.

System szesnastkowy opiera się na 16 znakach: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Liczby ciągu tworzymy analogicznie jak w systemie dwójkowym:

sys szesnastkowy1Konwersja (przekształcenie) liczby szesnastkowej na dziesiętną:

Jako przykład posłuży nam liczba szesnastkowa A8D1. Każdą z cyfr mnożymy przez malejącą potęgę liczby 16:

A x 163 + 8 x 162 + D x 161 + 1 x 160

10 x 163 + 8 x 162 + 13 x 161 + 1 x 160 = 40960 + 2048 + 208 + 1 = 43217

Konwersja (przekształcenie) liczby dziesiętnej na szesnastkową:

Ponownie przekształćmy liczbę dziesiętną 43217 na liczbę szesnastkową. Robi się to w kilku etapach:

1. sprawdzamy między jakimi wielokrotnościami liczby 16 mieści się nasza konwertowana liczba:

konwersja16a2.  sprawdzamy po której z kolei wielokrotności liczby 16 występuje nasza konwertowana liczba – od tego zależy ilość znaków w zapisie szesnastkowym liczby

konwertowana liczba 43217 jest większa od liczby 4096, która jest 4 wielokrotnością liczby 16, dlatego nasza liczba w systemie szesnastkowym będzie miała 4 znaki

3. sprawdzamy ile razy ta wielokrotność liczby 16 mieści się w naszej konwertowanej liczbie i ewentualnie jaka będzie reszta tego dzielenia

43217 / 4096 ≈ 10,55

43217 – 10 x 4096 = 43217 – 40960 = 2257

Liczba 4096 (będąca wielokrotnością liczby 16 bezpośrednio mniejszą od liczby konwertowanej) mieści się w liczbie 43217 dziesięć razy. W dziesiętna liczba 10 w systemie szesnastkowym to A. Pozostaje nam reszta 2257.

4. z resztą postępujemy identycznie – sprawdzamy po której wielokrotności liczby 16 występuje; sprawdzamy ile razy ta wielokrotność liczby 16 mieści się w naszej reszcie i jaka ewentualnie będzie z tego kolejna reszta

konwersja16b2257 / 256 ≈ 8,82

Liczba dziesiętna 8 w systemie szesnastkowym to także 8.

2257 – 8 x 256 = 2257 – 2048 = 209

5. z kolejną resztą postępujemy analogicznie

konwersja16c209 / 16 ≈ 13,06

Liczba dziesiętna 13 w systemie szesnastkowym to D.

209 – 13 x 16 = 209 – 208 = 1

konwersja16d1 / 1 = 1

Liczba dziesiętna 1 w systemie szesnastkowym to także 1.

6. wynik konwersji otrzymujemy poprzez zestawienie ze sobą liczb w systemie szesnastkowym otrzymywanych na kolejnych etapach konwersji

liczbie dziesiętnej 43217 w systemie szesnastkowym odpowiada zapis A8D1.

Konwersja (przekształcenie) liczby szesnastkowej na dwójkową:

Cztery cyfry zapisu dwójkowego odpowiadają jednej cyfrze w zapisie szesnastkowym:

sys dwojk a szesnastPrzekształcenie liczby szesnastkowej na dwójkową polegać będzie jedynie za zamianie jednej cyfry kodu szesnastkowego na 4 cyfry kodu dwójkowego (zgodnie z powyższą tabelą):

sys dwojk a szesnast2liczba szesnastkowa: EB = liczba dwójkowa 11101011

Konwersja (przekształcenie) liczby dwójkowej na szesnastkową:

Przekształcenie liczby zapisanej w systemie dwójkowym na liczbę w zapisie szesnastkowym polega na zamianie czterech kolejnych cyfr kodu dwójkowego na jedną cyfrę kodu szesnastkowego (zgodnie z powyższą tabelą): sys dwojk a szesnast1liczba dwójkowa: 11101011 = liczba szesnastkowa EB

Uwaga! Jeśli liczba w zapisie dwójkowym będzie miała zbyt mało cyfr aby zamienić ją na liczbę w zapisie szesnastkowym wystarczy z przodu (po lewej stronie) dopisać odpowiednią ilość zer:

sys dwojk a szesnast3liczba dwójkowa 11011 = liczba szesnastkowa 1B

 

Oczywiście istnieją jeszcze inne systemy liczbowe, ale raczej nie będziemy ich wykorzystywać podczas programowania, dlatego nie zostały one tu przedstawione.