02 Konwersjakodu


2. Konwersja kodu - różne systemy

System liczbowy to zbiór reguł służących do zapisywania, odczytywania i nazywania liczb.
W artykule tym przedstawię, najprościej jak się da, nie pomijając kluczowych teorii matematycznych sposoby zamiany liczb dziesiętnych
na binarne, ósemkowe, szesnastkowe i BCD.

System dwójkowy nazywany także binarnym

Dwójkowy system liczbowy to system pozycyjny o podstawie "2". Zapis liczb odbywa się przy użyciu cyfr "0" i "1".
Np. zapis (1001)
2= 1*23+ 0*22+ 0*21+ 1*20=(9)10
Wyobraźmy sobie, że chcemy zapisać liczbę dziesiętną "sześć" (6)
10 w kodzie binarnym. Aby to zrobić można podzielić tę liczbę przez 2 aż wynik osiągnie zero. Czyli:
6 |2 to 3 reszty 0 bo (3*2)= 6
3 |2 to 1 reszty 1 bo (1*2)+ 1(reszty)=3
1 |2 to 0 reszty 1 MSB bo (0*2)+ 1=1

Naszym wynikiem jest wynik reszty. Zapis kodu dwójkowego rozpoczynamy od MSB czyli po kolei wypisując resztę "od dołu do góry" wyjdzie nam 110.
(6)
10=(110)2
Przedstawię to bardziej wizualnie.

0x01 graphic

Pamiętaj:
- reszta w systemie binarnym może przyjmować tylko wartości 0 lub 1
- dzielisz tak długo aż wynik z dzielenia będzie równy "0"
- najważniejszy jest zapis wyniku.

System ósemkowy (oktalny)

Oktalny system ma podstawę równą "8". Zapis liczb odbywa się przy użyciu cyfr: 0,1,2,3,4,5,6,7
Np. zapis (30)
8= 3*81+ 0*80 = (24)10
Zamianę liczb dziesiętnych na oktalne wykonujemy takim samym sposobem jak w kodzie binarnym. Dzielimy liczbę dziesiętną przez "8" aż wynik z dzielenia będzie równy "0", pamiętając, że reszta może tym razem przybierać w
artości od "0" do "7" włącznie.

0x01 graphic

Zapis szesnastkowy (heksadecymalny)

Ten system ma podstawę "16". Zapis liczb odbywa się przy użyciu następujących cyfr i znaków: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
gdzie:
A- oznacza "10"
B- 11
C- 12
D- 13
E- 14
F- 15

Co to znaczy? Otóż to, że np. liczba (13)
10 = (D)16
W takim razie np (
1A)16 = (26)10
Dzielimy podobnie jak w poprzednich systemach pamiętając o wartościach jakie przybiera reszta i pamiętając o tym by 10, 11, itd. zapisywać jako A, B itd...

0x01 graphic

System BCD-zapis dwójkowo dziesiętny

BCD: Binary Coded Decimal czyli liczby dziesiętne zakodowane binarnie.

Są różne kody BCD które różnią się formą zapisu dlatego już na wstępie uświadamiam, że piszę tu o kodzie BCD 8421 inaczej nazywanym też NBCD a potocznie po prostu BCD.
W kodzie BCD każdą cyfrę liczby dziesiętnej zapisujemy za pomocą kodu binarnego w reprezentacji 4 bitowej czyli:
1- 0001
2- 0010
3- 0011
4- 0100
5- 0101
6- 0110
7- 0111
8- 1000
9- 1001

W takim razie liczbę (123)
10 zapiszemy (0001 0010 0011)BCD
Normalnie nie oddziela się grup 4-bitowych spacjami ale dla ułatwienia odczytu i zaprezentowania idei tak zrobiłem.
(543)
10 zapiszemy (010101000011)BCD
(1)
10 zapiszemy (0001)BCD

Dodawanie liczb binarnych

W dodawaniu liczb binarnych należy pamiętać o takich zasadach, że:
0+0=0
0+1=1
1+0=1
1+1=0 i "1" zapisujemy w pamięci lub pisząc inaczej "przenosimy o jedną pozycję dalej"


(5)
10+(6)10=(11)10 To nie podlega wątpliwości:):)

(5)
10=(101)2
(6)
10=(110)2

0x01 graphic

Jak widać otrzymaliśmy bardzo dobry wynik czyli (11)10=(1011)2
W ten sposób zawsze można sprawdzić czy dobrze policzyliśmy - zamieniając liczby dwójkowe na dziesiętne.

Kolejny przykład

(59)
10=(0111011)2
(72)
10=(1001000)2

0x01 graphic

(59)10+(72)10=(131)10
Obliczenia się zgadzają ponieważ:

(131)
10=(10000011)2

Odejmowanie liczb binarnych

Odejmowanie liczb binarnych wykonuje się poprzez zamianę jednej z liczb na ujemną. A zatem odejmowanie jest niczym innym jak dodawaniem ujemnych liczb binarnych. Skoro tak to trzeba wiedzieć jak zapisywać liczby binarne dodatnie w postaci ujemnej.
Gdy chcemy zapisać liczbę o podst. dziesiętnej jako ujemną to po prostu dajemy minus "-", np. (-10)
10

Liczby binarną można zapisać w postaci ujemnej na dwa sposoby:

1. Zapis Uzupełnienie do 2 - U2, czyli (10110100)
2=(01001100)U2
Przepisujemy bity od prawej strony do pierwszej jedynki (włącznie)a kolejne bity przepisujemy na odwrót (z zaprzeczeniem)

2. Zapis Uzupełnienie do 1 - U1, czyli (10110100)
2=(01001011)U1
Wszystkie bity przepisujemy z zaprzeczeniem. Uzupełnienie do 1 liczby binarnej jest zawsze negacją bitów tej liczby.

Czy liczby ujemne będą zapisane na U1 czy na U2 to stanowi kwestią umowną. Należy z góry zdefiniować jaki jest stosowany zapis dla ujemnych.
w przypadku działań na liczbach ujemnych ostatni bit, czyli bit znajdujący się po lewej stronie,
bit znaku informuje nas czy liczba jest w ogóle ujemna czy nie. Jeżeli jest zero, np 01111 to znaczy że liczba jest dodatnia ale jeżeli jest "jedynka", np. 10011 to znaczy ze mamy do czynienia z liczbą ujemną w zapisie takim jaki został wyznaczony.
Schemat dodawania w wypadku zapisu U1

Dodawanie dwóch liczb binarnych w przypadku, gdy liczby ujemne są reprezentowane w zapisie U1, wykonywane jest przez dodanie tych liczb
wraz z bitami znaku.
Gdy istnieje przeniesienie z najbardziej znaczącej pozycji (MSB - w razie pytań patrz - poprzedni artykuł!), to wynik zostaje
zwiększony o jeden, czyli przeniesienie dodajemy do najmniej znaczącej pozycji.
Jeżeli wynik dodawania jest dodatni to otrzymana liczba jest liczbą binarną.
Jeżeli wynik jest ujemny to należy wykonać na nim jeszcze raz zapis U1,pozostawiając bit znaku bez zmian, i wtedy wynik przyjmie postać binarną.
Przykład:
0x01 graphic


Schemat dodawania w wypadku zapisu U2

Dodawanie dwóch liczb binarnych ze znakiem w przypadku, gdy liczba ujemna zapisana jest jako U2, wykonywane jest przez dodanie tych liczb
łącznie z bitem znaku.
Przeniesienie na najbardziej znaczącej pozycji
zostaje odrzucone.
Jeżeli wynik dodawania jest dodatni to otrzymana liczba jest liczbą binarną.
Jeżeli wynik dodawania jest ujemny to na otrzymanej liczbie należy wykonać jeszcze raz zapis U2 pozostawiając oczywiście bit znaku bez zmian.
Przykład:
0x01 graphic


W wypadku innych systemów liczbowych (ósemkowy, szesnastkowy itp...) schemat postępowania przedstawia się podobnie. Również należy uzyskać zapis U1 lub U2 a później rozpocząć odejmowanie.

Na podstawie http://republika.pl/blue_rider_hp/



Wyszukiwarka

Podobne podstrony:
02 Konwersatorium,  '13
02 Konwersatorium,  '14
PSL-SL-02 Konwersja
Wyk 02 Pneumatyczne elementy
02 OperowanieDanymiid 3913 ppt
02 Boża radość Ne MSZA ŚWIĘTAid 3583 ppt
OC 02
PD W1 Wprowadzenie do PD(2010 10 02) 1 1
02 Pojęcie i podziały prawaid 3482 ppt
WYKŁAD 02 SterowCyfrowe
02 filtracja
02 poniedziałek
21 02 2014 Wykład 1 Sala

więcej podobnych podstron