wtorek, 24 listopada
Shadow

Systemy zapisu liczb

I. Podstawowe pozycyjne systemu liczbowego.

a) Dziesiętny system liczbowy DEC

  • każdą liczbie w tym systemie zapisuje się przy pomocy dziesięciu cyfr,
  • Podstawa systemu dziesiętnego (DEC) p=10,
  • W zależności od pozycji w liczbie dana cyfra może mieć różną wagę w=pi w=10i

10 cyfr (0,1,2,3,4,5,6,7,8,9)
273,49DEC = 2*102+7*101+3*100+4*10-1+9*10-2

b) Szesnastkowy system liczbowy (Heksadecymalny) HEX

  • każdą liczbie w tym systemie zapisuje się przy pomocy szesnastu cyfr,
  • Podstawa systemu szesnastkowego (HEX) p=16,
  • W zależności od pozycji w liczbie dana cyfra może mieć różną wagę w=pi w=16i

16 cyfr (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
123HEX=3*160+2*161+1*162=291DEC

c) Ósemkowy system liczbowy OCT

  • każdą liczbie w tym systemie zapisuje się przy pomocy ośmiu cyfr,
  • Podstawa systemu ósemkowego (OCT) p=8,
  • W zależności od pozycji w liczbie dana cyfra może mieć różną wagę w=pi w=8i

8 cyfr (0,1,2,3,4,5,6,7)
123OCT=3*80+2*81+1*82=83DEC

d) Dwójkowy system liczbowy (Binarny) BIN

  • każdą liczbie w tym systemie zapisuje się przy pomocy dwóch cyfr,
  • Podstawa systemu binarnego (BIN) p=2,
  • W zależności od pozycji w liczbie dana cyfra może mieć różną wagę w=pi w=2i

2 cyfry (0,1)
1011BIN=1*20+1*21+0*22+1*23=11DEC

Tabela zawierająca skonwertowane wartości liczb DEC z zakresu od 0 do 15:

II. Konwersja

a) BIN->DEC, OCT->DEC, HEX->DEC

Konwersja ta polega na mnożeniu cyfr z ich wagami i następnym zsumowaniu otrzymanych wyników.Wagę obliczamy ze wzoru W = pi

  • wag,
  • podstawa,
  • pozycja cyfry (zaczynając numeracje od zera)

Przykład konwersji BIN->DEC, OCT->DEC, HEX->DEC:

b) DEC->BIN, DEC->OCT, DEC->HEX

Aby dokonać konwersji liczby z systemu dziesiętnego na dowolnie inny system należy podzielić liczbę dziesiętną przez podstawę systemu na jaki konwertujemy. Po operacji dzielenia otrzymamy wynik wraz z resztą dzielenia. Wynik dzielenia jest używany do kolejnego dzielenia przez podstawę natomiast reszta z dzielenia tworzy wynik konwersji, operacje dzielenia powtarza się do momentu aż wynik będzie równy 0.

Przykład konwersji DEC->BIN, DEC->OCT, DEC->HEX:

c) BIN->HEX, BIN->OCT

W przypadku konwersji BIN->HEX bity liczby BIN grupujemy w pół bajty (kęsy) poczynając od LSB. Każdy pół bajt zapisujemy osobno jako cyfrę HEX. W przypadku konwersji BIN->OCT postępujemy podobnie z tym że używamy trzech bitów.

d) HEX->BIN, OCT->BIN

W przypadku konwersji HEX->BIN każda cyfrę liczby HEX zapisujemy w postaci czterobitowej. Jeśli konwertujemy OCT->BIN kolejne cyfry zapisujemy w postaci trzy bitowej.

Przykład konwersji HEX->BIN, OCT->BIN:

III. Podstawowe kody

a) Kod dwójkowo-dziesiętny BCD

W Kodzie BCD każdą cyfrę liczby dziesiętnej zapisuje się w postaci dwójkowej czterobitowej oddzielnie. Kod ten używany jest w przypadkach gdy zachodzi potrzeba posługiwania się cyframi dziesiętnymi np. w celu wyświetlenia liczby DEC na wyświetlaczu.

Przykład zapisu w kodzie BCD:

b) Kod znak – moduł Z-M

Najstarszy bit jest znakiem liczby pozostałe bity decydują o wartości liczby.

Przykład zapisu w kodzie znak – moduł:

c) Kod uzupełnienie do dwóch U-2

Aby zamienić dodatnią liczbę dziesiętna na U-2 kodujemy ją tak samo jak w kodzie Z-M np. +3DEC to 0011U-2, natomiast jeśli liczba jest ujemna postępujemy według następującego algorytmu:

  • wartość bezwzględną liczby zapisujemy przy pomocy tylu bitów iloma dysponujemy (Krok 1),
  • negujemy wszystkie bity otrzymanej liczby (Krok 2),
  • do otrzymanej liczby dodajemy jeden (Krok 3).

d) Kod 1zN

Aby zamienić liczbę DEC na kod 1zN należy przypisać wartość jeden bitowi, który jest wskazywany przez wartość liczby DEC.

Przykładowe konwersje w przypadku kodu 1z10:

e) Pozostałe kody

Kod Graya dwie sąsiednie liczby kodowe różnią się jedynie na jednej pozycji. Kod wykorzystuje się w celu uniknięcia błędów podczas odczytu danych z poruszającego się nośnika,

  • Kod 2z5 jest wykorzystywany przede wszystkim do transmisji danych (pozwala na detekcje błędu który może powstać na skutek zakłóceń),
  • Kod Hamminga pozwala na detekcje błędu powstałego podczas transmisji danych i jego usunięcie.
  • Kod Johnsona jest to odmiana kodu BCD łatwo ją dekodować,
  • Kod Aikena jest odmiana kodu BCD wykorzystuje się go przy operacjach matematycznych.

Teksty źródłowe:

  • Andrzej Rydzewski: Mikrokontrolery jednoukładowe rodziny MCS-51. Warszawa, Wydawnictwo Naukowo-Techniczne 1999.
  • Wojciech Głocki: Układy cyfrowe.Warszawa,Wydawnictowo Szkolne i Pedagogiczne 1998.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.