asasas
Centrum technika informatyka

Artykuły: Systemy liczbowe z kategorii : UTK


Autor mijagi
Data dodania 2009-11-25
Liczba wyświetleń 1314
Artykuł zawiera tagi, dzięki którym możesz odnaleźć wpisy, które być może też Cię zainteresują:
systemy liczbowe, konwersja, binarny, heksadecymanlny, oktalny, decymalny,

Systemy liczbowe

Słowem wstępu

Człowiek, jak natura go stworzyła jest istotą elektryczną. W naszym ciele zachodzi nieskooczenie wiele procesów chemicznych, których skutkiem jest wywoływanie impulsów prądu. W samym mózgu
niezliczona ilość neuronów przesyła impulsy, powodując jakąś reakcję ciała na nie. Dzięki tym właśnie impulsom, człowiek zaczął logicznie myśleć, stał się kreatywny. Istota ludzka, jako że jest niesamowicie leniwa, zaczęła wymyślać na początku istnienia różnorodne narzędzia, które pomagały mu w czynnościach potrzebnych do przetrwania. Z biegiem czasu jednak spodobało nam się wygodne życie oraz staliśmy się bardziej skrupulatni w tym, co robiliśmy. W ten sposób powstało pierwsze koło, matematyka, systemy miar i wag itd. Idąc dalej drogą rozwoju, ludzie zainteresowali się zjawiskiem prądu. Był to niesamowity okres, który był rewolucją w świecie teleinformatyki. Odkryto wiele bardzo ciekawych zjawisk związanych z prądem elektrycznym, których opisanie zajęło wiele lat rozmaitym uczonym. Jak już powiedziałem... Człowiek jest leniwy. I nic tego nie zmieni. Jedna osoba zapragnęła przesyład informacje za pomocą kabla miedzianego zamiast doręczyciela. W taki sposób naukowcy stanęli przed problemem przesyłania informacji kablem. Jednym z pierwszych śmiałków był Samuel Morse, który to stworzył sposób reprezentacji alfabetu i cyfr za pomocą impulsów elektrycznych. Impulsy te były krótsze, bądź dłuższe. Od tego zależało czy znakiem jest kreska, czy też kropka.
Drodzy czytelnicy. Poznaliście sposób porozumiewania się ludzi za pomocą maszyn. Jednak informatyka, którą będziemy się tutaj zajmowad wymaga zupełnie innej metody porozumiewania. Komputery są maszynami logicznymi. Przyjmują, więc tylko dwa stany logiczne:

1(jedynka) – prąd płynie
O(zero) – brak prądu

Skoro przyjmuje tylko dwa stany słuszne byłoby opracowanie systemu, który tak jak ludzki ukochany dziesiętny, będzie zrozumiały dla maszyn. Przyjęto, że podstawą tego systemu liczbowego będzie liczba 2, ze względu na występowanie dwóch stanów logicznych. W dalszej części publikacji przyswoimy wiedzę, która zostanie w naszej głowy już do kooca naszego życia oraz jeden dzieo dłużej.
Mianowicie poznamy:

  •  Rodzaje systemów liczbowych oraz ich wady i zalety,
  • Poznamy podstawy tworzenia systemów liczbowych oraz
          konwersji na dowolny system z dowolnego
  • Zgłębimy tajniki systemu dwójkowego (tak, dzięki niemu
          możemy korzystad z takich komputerów jak te, których
          używacie czytając publikację)
  • Wgłębimy się w znajomośd systemów: szesnastkowego,
          ósemkowego

Wiemy już, czego się dowiemy czytając opracowanie, wiemy już również, że komputer przyjmuje dwa stany logiczne i za ich pomocą porozumiewają” się jego części składowe zwane układami cyfrowymi. Czas uchylić rąbka tajemnicy... Zapraszam do poznania wiedzy.

Mówiąc o systemach liczbowych mamy na myśli ogól zasad
umożliwiających przedstawienie liczb za pomocą umownych
znaków. Znaki, którymi zapisuje się liczby nazywamy
cyframi.

Wyróżniamy dwa rodzaje systemów liczbowych:

  •  Niepozycyjne (np. rzymski system liczbowy)
  • Pozycyjne (np. dziesiętny system liczbowy)

System liczbowy – niepozycyjny
Znaczenie cyfry jest niezależne od miejsca położenia w zapisie liczby
Przykład:
  I=1 V=5        X = 10   L = 50  C = 100   D = 500 M = 1000
  MCMXCVIII = 1998D
  Liczba:
  XD – oznacza liczbę w zapisie dziesiętnym

 

System liczbowy – pozycyjny

Znaczenie cyfry jest zależne od miejsca (pozycji), które ona zajmuje w liczbie. W pozycyjnym systemie liczbowym, (n+m) – pozycyjną nieujemną liczbę:

A = an-1 ∙ pn-1 + ... + a1 ∙ p1 + a0 ∙ p0 + a-1 ∙ p-1 + ... + a-m ∙ p-m

Zapisuje się w postaci:

(A)p = (an-1...a1,a0,a-1...a-m) = (CA, UA)p = (CA)p, (UA)p

Objaśnienia:

  • p  - podstawa systemu liczbowego
  • ai - cyfra i -tej pozycji
  • n  - liczba cyfr części całkowitej liczby
  • m  - liczba cyfr części ułamkowej liczby

 Najbardziej popularne systemy liczbowe
 
System dziesiętny (decymalny)
        p = 10                       ai = { 0,1,2,3,4,5,6,7,8,9 }
        425D = 4 ∙ 100 + 2 ∙ 10 + 5 ∙ 1
W systemie dziesiętnym każda cyfra zajmuje określoną pozycję. Pozycję liczy się standardowo od zera (najmłodszej), tak więc:

  •    Cyfra 5 – jest pozycją zerową (najmłodszą) i leży na miejscu
             jedynek (jedności). Wartośd mnoży się przez 1.
  • Cyfra 2 – jest pozycją pierwszą i leży na miejscu dziesiątek.
             Wartości mnoży się przez 10.
  • Cyfra 4 – jest pozycją drugą i leży na miejscu setek. Wartości
             mnoży się przez 100.

Widzimy więc, że cyfra na danej pozycji jest mnożona przez odpowiednią potęgę liczby 10, przy czym wykładnik tej potęgi zależy od położenia (pozycji) danej cyfry w liczbie. Uwaga! Pozycje cyfr w liczbie numerujemy zawsze od 0 (najmłodsza cyfra).

425D = 4 ∙ 102 + 2 ∙ 101 + 5 ∙ 100

System dwójkowy (binarny)

p=2  ai = { 0,1}

Dla systemu dwójkowego podstawą jest liczba 2 i wagami są odpowiednie potęgi tej liczby. Kolejne pozycje liczby zwane są więc pozycjami: jedynek, dwójek, czwórek, ósemek ... itd.
Zapis: 10100B

10100B = 1 * 24 + 0 * 23 + 1 * 22 + 0 * 21 * 0 * 20 =
             = 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 0 * 1 =
             = 16 + 4 =
             = 20D

Sposób konwersji (przeliczania) liczby binarnej na dziesiętną z początku może się wydad dośd skomplikowany. Jest to na szczęście o wiele prostsze w praktyce niż w teorii. Niektórzy by zapamiętad kolejne potęgi liczby 2, na początku nauki rozrysowują sobie tabelkę:

512 256 128 64 32 16 8 4 2 1
1 0 0 1 0 0 1 1 0 1

 

Analizując dane wprowadzone do tabelki zliczamy wartości pozycji jedynek:
      1001001101B = 512+64+8+4+1 = 520 + 73 = 593D

Dokonywanie konwersji z liczby dziesiętnej na binarną

Konwersji liczby dziesiętnej na binarną dokonuje się poprzez dzielenie przez podstawę systemu binarnego – czyli 2. W zależności od wyniku dzielenia przyjmuje się czy cyfra dwójkowa będzie zerem czy jedynką.
Jeśli dzielenie jest całkowite (bez reszty – części ułamkowych) to cyfrą binarną będzie: 0
Jeżeli zaś dzielenie jest z resztą (z miejscami po przecinku) to cyfrą binarną będzie: 1

Przykład: 69D = ?B

69 : 2 = 34,5 || r. 1
34 : 2 = 17    || r. 0
16 : 2 = 8,5   || r. 1
8:2    =4        || r. 0
4:2    =2        || r. 0
2:2    =1        || r. 0
1:2    = 0,5    || r. 1

Wynik zapisujemy czytając liczby od dołu, czyli: 1000101B Można zauważyd, że do dzielenia wybieramy tylko częśd całkowitą liczby, pomijając dosłownie częśd ułamkową. Jest to bardzo ważne, gdyż jeśli zapomnimy o tym – nasze liczenie można rozbid o kant ściany

 

Ćwiczenia

1. Zbierz daty urodzenia członków rodziny – dokładniej chodzi w  dwiczeniu o rok urodzenia. Zadanie polega na wyliczeniu średniej z tych dat. Dodajemy i dzielimy w dziesiętnym, tylko że liczby zapisujemy w systemie binarnym. Nie zwracamy w tym  przykładzie uwagi na części ułamkowe.
Przykład: (1990 + 1967 + 1964) : 3 = 1973 || (11111000110 +
11110101111 + 11110101100) : 11 = 11110110101B
2. Przekonwertuj liczby w działaniu: (1001011 – 100010 + 100111)  * 111 : 101 na system dziesiętny oraz podaj wynik w systemie decymalnym i binarnym
3. Podaj wartości potęg: 210, 220, 230 oraz nazwij je przedrostkami.

 

System szesnastkowy (heksadecymalny – hex)

p = 16    ai = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
A = 10 B = 11 C = 12 D = 13 E = 14 F = 15

System szesnastkowy jest w dzisiejszej informatyce bardzo
powszechny i stosowany w wielu jej dziedzinach. Podstawą systemu
jest liczba 16, więc musi on posiadad 16 cyfr.

Pierwsze dziesięd to: 0 1 2 3 4 5 6 7 8 9. Natomiast kolejne sześd zmieniło się w znaki alfabetu łacioskiego, gdyż jedna cyfra powinna odpowiadad jednemu symbolowi graficznemu – znakowi. Kolejne sześd: A B C D E F Zatem w systemie heksadecymalnym liczby: 2, 7, 9, 11, 15, 16 będą wyglądad następująco: 2, 7, 9, B, E, F

 

Konwersja z systemu szesnastkowego do liczby dziesiętnej:

4C2H = 4 * 162 + C * 161 + 2 * 160 =
          = 4 * 256 + 12 * 16 + 2 * 1 =
          = 1024 + 192 + 2 =
          = 1218D

Znając już metody obliczania liczby binarnej na dziesiętną, możemy skonstruowad następną tabelkę z kolejnymi potęgami podstawy systemu – 16. Myślę jednak, drogi czytelniku, że załapałeś już trochę i sam dasz radę coś takiego wykombinowad. Jeśli będziesz miał jakieś problemy zajrzyj troszkę wyżej i przeczytaj jeszcze raz materiał tak by wszystko stało się zrozumiałe.

Konwersja z systemu dziesiętnego do liczby szesnastkowej

Jest to o tyle ciekawa sprawa, że dokonujemy dzielenia liczby dziesiętnej przez podstawę – 16, lecz reszta z dzielenia ma zupełnie inne znaczenie niż w przypadku binarnego systemu.
2009D = ?H
2009 : 16 = 125,5625 || r. 0,5625 * 16 = 9
125 : 16 = 7,8125       || r. 0,8125 * 16 = 13 = D
7 : 16 = ...                   || r. 7

Wynik odczytujemy również jak w przypadku systemu dwójkowego od dołu: 7D9H W tym przypadku dzielimy całkowitą liczbą przez 16, wydzielając jej częśd ułamkową, którą następnie mnożymy przez 16. Otrzymana liczba jest dokładnie tą, którą chcemy otrzymad. W przypadku gdy dzielna jest mniejsza od 16 nie dokonujemy żadnych obliczeo i przepisujemy jej wartośd bez zmian.

256 : 16 = 16 || r. 0 * 16 = 0
16 : 16 = 1     || r. 0 * 16 = 0
1 : 16 = ...      || r. 1

Wynik: 100H

Konwersja systemu szesnastkowego do liczb binarnych

Jest to najprostsza konwersja do wykonania. Jej zasada polega na tym, że bierzemy cyfrę liczby szesnastkowej i przeliczamy ją na 4- bitową liczbę binarną.
9D5F1AH = ?B
9D5F1A = 1001 1110 0101 1111 0001 1010B
9 = 1001
D = 1110
5 = 0101
F = 1111
1 = 0001
A = 1010

Konwersja systemu binarnego na liczbę szesnastkową

By skonwertowad liczbę binarną na hex, należy liczyd od pierwszego bita z prawej strony, co cztery, rozdzielając na 4-bitowe grupy (tetrady).
Przykład:
   10010010010010111010110101 B = 10 0100 1001 0010 1110 1011 0101B

Zauważ, że liczba posiada 6 tetrad, natomiast ostatnia liczba od prawej strony posiada tylko dwa bity. W takim przypadku należy dopisad do niej z przodu dwa zerowe bity.
                              10 → 0010
Więc:
 10010010010010111010110101 B = 0010 0100 1001 0010 1110 1011 0101B
                                                                  2       4       9       2       D       B         5

 

System liczbowy ósemkowy (oktalny)

p=8   a = {0, 1, 2, 3, 4, 5, 6, 7 }

Ósemkowy system liczbowy to pozycyjny system liczbowy o
podstawie równej 8. Nazywamy go również oktalnym – od słowa
octal. Do zapisu liczb używa się w nim ośmiu cyfr: od 0 do 7. Jego
zastosowanie zostało wykorzystane w informatyce na przykład do
zapisu praw dostępu do pliku w systemach z rodziny Linux. Prawa te
mogą przyjąd jako argument oktalną reprezentację żądanych praw
dostępu (chmod 754 plik).

Konwersja systemu oktalnego na dziesiętny

Przyjmijmy sytuację, że musimy przejśd z oktetu na liczbę dziesiętną. Jak to zrobić Nie jest to trudne, gdy znamy już poprzednie metody przechodzenia z różnych systemów liczbowych na dziesiętny.
144O = ?? D
144 = 4 * 80 + 4 * 81 + 1 * 82 = 4 + 32 + 64 = 100D

Konwersja decymalnego systemu liczbowego na ósemkowy

123D  = ?? O
123 : 8 = 15    r. 0.375 * 8 = 3
15 : 8   = 1      r. 0.875 * 8 = 7
1:8 =...            r. 1
123D = 173O

Konwersja systemu ósemkowego na binarny

Jest to niemalże skopiowana metoda konwersji, jak w przypadku hex→bin. Różnica polega jedynie na długości słowa bitowego. Wcześniej używaliśmy dokładnie 4 bitów do zapisania cyfry, teraz wykorzystamy ich dokładnie 3.
Liczbę 7253O w systemie binarnym zapiszemy jako 111010101011B
        7 = 111        2 = 010        5 = 101         3 = 011
Konwersję systemu dwójkowego na ósemkowy przedwiczcie sami, wykorzystując podane informacje. W dwiczeniu chodzi o ruszenie samodzielnie szarymi komórkami.

 

 


 

Zapraszam do wspólnej wędrówki po świecie informatyki dalszymi
publikacjami mojego autorstwa. Tematem kolejnej części serii
   publikacji będzie arytmetyka dwójkowa a w niej dodawanie,
       odejmowanie, mnożenie oraz zapis liczb ujemnych.
                                            Pozdrawiam event15.



Copyright © 2009 by: technik-informatyk.info