22
DZIESIĘTNY SYSTEM LICZBOWY Do zapisu dowolnej liczby system wykorzystuje dziesięć symboli (cyfr): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Dowolną liczbę w systemie dziesiętnym możemy przedstawić jako następująca sumę: (a n-1 ...a 1 a 0 ) (10) = a n-1 *10 (n-1) +...+ a 1 *10 1 + a 0 *10 0 = gdzie: i - numer pozycji w liczbie, a i - dowolna z cyfr od 0 do 9, n - ilość cyfr (pozycji) w liczbie Przykład: 424 (10) = 4*10 2 + 2*10 1 + 4*10 0 pozycja jedynek (0) pozycja dziesiątek (1) pozycja setek (2) = 1 n 0 i i i 10 a 1

DZIESIĘTNY SYSTEM LICZBOWY - Jagiellonian Universityzefir.if.uj.edu.pl/planeta/baza/wyklad_architektura/...NKB 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • DZIESIĘTNY SYSTEM LICZBOWY

    Do zapisu dowolnej liczby system wykorzystuje dziesięć symboli (cyfr): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

    Dowolną liczbę w systemie dziesiętnym możemy przedstawić jako następująca sumę: (an-1...a1a0)(10) = an-1*10(n-1) +...+ a1*101 + a0*100 = gdzie: i - numer pozycji w liczbie, ai - dowolna z cyfr od 0 do 9, n - ilość cyfr (pozycji) w liczbie Przykład: 424(10) = 4*102 + 2*101 + 4*100

    pozycja jedynek (0)

    pozycja dziesiątek (1)

    pozycja setek (2)

    ∑−

    =

    ∗1n

    0i

    ii 10a

    1

  • DWÓJKOWY SYSTEM LICZBOWY

    Do zapisu dowolnej liczby system wykorzystuje dwa symbole (cyfry):

    0, 1 Dowolną liczbę w systemie dwójkowym możemy przedstawić jako następująca sumę: (an-1...a1a0)B = an-1*2(n-1) +...+ a1*21 + a0*20 = gdzie: i - numer pozycji w liczbie, ai - dowolna z cyfr (0 lub 1), n - ilość cyfr (pozycji) w liczbie Przykład:

    10100B = 1*24 + 0*23 + 1*22 + 0*21 + 0*20

    ∑−

    =

    ∗1n

    0i

    ii 2a

    2

  • HEKSADECYMALNY (SZESNASTKOWY) SYSTEM LICZBOWY

    Do zapisu dowolnej liczby system wykorzystuje szesnaście symboli (cyfr i liter):

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Dowolną liczbę w systemie heksadecymalnym możemy przedstawić jako następująca sumę:

    (an-1...a1a0)H = an-1*16(n-1) +...+ a1*161 + a0*160 = gdzie: i - numer pozycji w liczbie, ai - dowolna cyfra heksadecymalna, n - ilość cyfr (pozycji) w liczbie Przykład:

    1C2H = 1*162 + C*161 + 2*160 Bardzo łatwa konwersja pomiędzy zapisem dwójkowym i szestnastkowym:

    ∑−

    =

    ∗1n

    0i

    ii 16a

    7𝐴𝐴𝐴𝐴𝐴𝐻𝐻 = 0111′1010′1100′0011 3

  • INFORMACJA CYFROWA

    W słowach cyfrowych wyróżnia się najstarszą i najmłodszą pozycję, tj. bit najbardziej znaczący zwany najstarszym (ang. MSB - Most Significant Bit) oraz bit najmniej znaczący zwany najmłodszym (ang. LSB - Least Significant Bit)

    an-1 ......................... a0

    MSB LSB

    Analogicznie możemy mówić o starszym i najmłodszym bajcie lub o starszej lub młodszej tetradzie

    4

  • KODOWANIE

    Zbiorem kodowanym może być zbiór dowolnych obiektów (cyfr, liter, symboli graficznych, stanów logicznych, poleceń do wykonania itp.)

    Kodowaniem nazywamy przyporządkowanie poszczególnym obiektom zbioru kodowanego odpowiadających im elementów zwanych słowami kodowymi, przy czym każdemu słowu kodowemu musi odpowiadać dokładnie jeden element kodowany

    A

    B

    C

    010

    111 100

    001 Proces kodowania może być opisem słownym, wzorem (zależnością matematyczną), tabelą kodową itp.

    Kodem liczbowym nazywamy taki kod, który liczbom dowolnego systemu będzie przyporządkowywał słowa kodowe w postaci zero-jedynkowej (binarnej)

    5

  • KODOWANIE LICZB I TEKSTÓW

    Kody binarne kod naturalny NKB kod BCD kod Gray’a inne kody

    Kodowanie znaków (tekstów)

    2 6

  • NATURALNY KOD BINARNY (NKB)

    Jeżeli dowolnej liczbie dziesiętnej przyporządkujemy odpowiadająca jej liczbę binarną, to otrzymamy naturalny kod binarny (NKB)

    Minimalna długość k słowa binarnego reprezentującego liczbę dziesiętną A musi spełniać warunek:

    12A2A k +〈〈Oznacza to, że aby zakodować liczbę dziesiętną w zakresie 0-15 wystarczy wykorzystać jedną tetradę (długość słowa kodowego k=4) gdyż

    31215 4 〈〈NKB

    0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001

    10 101011 101112 110013 110114 111015 1111 7

  • KOD PROSTY BCD

    Gdy w systemie wygodnie jest operować liczbami dziesiętnymi stosowany jest kod BCD. Liczba terad kodu BCD jest bowiem równa liczbie pozycji dziesiętnych reprezentowanej liczby. Np. dziesiętna liczba 6-pozycyjna (000000-999999) jest kodowana na 24 bitach

    Konstrukcja: • każdej cyfrze dziesiętnej przyporządkowujemy czterocyfrową liczbę

    dwójkową w kodzie NKB*); • słowo kodowe w kodzie prostym BCD otrzymujemy zapisując każdą cyfrę

    liczby dziesiętnej w postaci tetrady binarnej

    463D = 0100’0110’0011BCD 67D = 0110’0111BCD

    8

  • KOD GRAY’A

    Kod Gray’a tworzy się z kodu naturalnego NKB biorąc pod uwagę:

    Kod Gray’a to taki kod, którego kolejne słowa różnią się tylko na jednej pozycji

    1n2n2n

    n1n1n

    nn

    bbgbbg

    bg

    −−−

    −−

    ⊕=⊕=

    =

    NKB Kod Gray’a000 000001 001010 011011 010100 110101 111110 101111 100

    9

  • INNE KODY BINARNE

    NKB BCD Kod Gray’a 1 z 10 Johnsona0 0000 0000 0000 0000000001 000001 0001 0001 0001 0000000010 000012 0010 0010 0011 0000000100 000113 0011 0011 0010 0000001000 001114 0100 0100 0110 0000010000 011115 0101 0101 0111 0000100000 111116 0110 0110 0101 0001000000 111107 0111 0111 0100 0010000000 111008 1000 1000 1100 0100000000 110009 1001 1001 1101 1000000000 10000

    Długość słowa kodu „1 z n” (w tabeli „1 z 10”) jest równa n, tj. liczności zbioru kodowanego (liczbie kodowanych słów)

    Kod 5-bitowy stosowany do kodowania cyfr dziesiętnych

    Są to kody nadmiarowe (redundancyjne), w których liczba pozycji binarnych jest większa niż wynika to z ogólnej zależności Redundancję można wykorzystać do zwiększenia niezawodności operacji wykonywanych na liczbach

    12A2A k +〈〈

    10

  • KODOWANIE ZNAKÓW Początki:

    • Harald C. M. Morse (kropka - kreska - ....); • Anatol de Baudot (dalekopis); • w pierwszych maszynach cyfrowych - kod dalekopisowy 5-bitowy,

    a potem 8-bitowy (EBCDIC); W 1977 roku kiedy to ANSI (American National Standards Institute) zatwierdził kod ASCII (The American Standard Code for Information Interchange).

    Jest to 7-bitowy kod (8 bit do kontroli parzystości), definiujący 128-elementowy zestaw znaków (character set) o wartościach kodowych od 0 do 127. Zestaw zawiera litery łacińskie (duże i małe), cyfry i znaki interpunkcji oraz różne znaki specjalne. Międzynarodowa Organizacja Standaryzacji - ISO, nadała amerykańskiemu systemowi kodowania status standardu międzynarodowego oznaczonego jako ISO 646.

    Kod ASCII rozszerzony wprowadza dodatkowe 128 znaków wykorzystując mało używany bit parzystości:

    IBM wprowadza • Code Page 474 dla USA • Code Page 852 dla Europy Wschodniej 11

  • 8 Bit kontroli parzystości7 0 0 0 0 1 1 1 16 0 0 1 1 0 0 1 1

    Numery bitów słowa

    5 0 1 0 1 0 1 0 14 3 2 10 0 0 0 NUL DEL SP 0 @ P ‘ p0 0 0 1 SOH DC1 ! 1 A Q a q0 0 1 0 STX DC2 „ 2 B R b r0 0 1 1 ETX DC3 ≠ 3 C S c s0 1 0 0 EOT DC4 $ 4 D T d t0 1 0 1 ENQ NAK % 5 E U e u0 1 1 0 ACK SYN & 6 F V f v0 1 1 1 BEL ETB ` 7 G W g w1 0 0 0 BS CAN ( 8 H X h x1 0 0 1 HT EM ) 9 I Y i y1 0 1 0 LF SUB * : J Z j z1 0 1 1 VT ESC + ; K [ k {1 1 0 0 FF FS , < L \ l |1 1 0 1 CR GS - = M ] m }1 1 1 0 SO RS . > N ↑ n ~1 1 1 1 SI US / ? O ← o DEL

    KODOWANIE ZNAKÓW kod ASCII

    12

  • Dodawanie i odejmowanie (schemat blokowy)

    13

  • 14

    Mnożenie Mnożenie

    Mnożenie Liczby dodatnie

    Można usprawnić operację mnożenia: możemy wykonywać bieżące dodawanie iloczynów cząstkowych, eliminuje to potrzebę przechowywania iloczynów cząstkowych, potrzeba mniej rejestrów.

  • Mnożenie liczb binarnych (schemat blokowy)

    15

    1) Mnożna i mnożnik ładowane są do rejestrów Q i M - Rejest A początkowo ustawiony na 0 - Rejest Q 1-bitowy początkowo ustawiony na 0 - Układ sterowania odczytuje mnożnik bit po bicie - Jeśli Q0=1 to mnożna jest dodawana do zawartości A i wynik pozostaje w A

    wszystkie bity rejestrów C, A i Q przesuwane są o jeden bit w prawo tzn.: C → An-1 … A0 → Qn-1 , bit Q0 jest tracony

    Jeśli Q0=0 to nie jest wykonywane dodawanie, a jedynie przesunięcie w prawo - Proces jest powtarzany dla każdego bitu orginalnego mnożnika - Iloczyn znajduje się w A, Q.

  • 16

    Mnożenie liczb binarnych

  • Mnożenie liczb binarnych (flow diagram)

    Beznakowe liczby całkowite

    17

  • Mnożenie w notacji uzupełnienia do dwóch - algorytm Botha

    18

    Rejestr Q - mnożnik Rejestr M – mnożna Rejster Q-1 jednobitowy umieszczone logicznie na prawo od najmniej znaczącego bitu Q0 rejestru Q

    Przesuniecie arytmetyczne w prawo: bit An-1 przesuwamy do An-2, ale także pozostaje w An-1 (jest zachowany bit znaku)

  • Dzielenie liczb binarnych bez znaku

    • Bity dzielnej są badane od lewej do prawej, aż zespół bitów będzie reprezentował liczbę większą lub równą dzielnikowi

    • Aż do wystąpienia tego zdarzenia w ilorazie umieszczane są zera od lewej do prawej

    • Gdy wystąpi już to zdarzenie to w ilorazie umieszczamy jedynkę • Dzielnik jest odejmowany od dzielnej cząstkowej. Wynik jest określany

    jako reszta cząstkowa • Począwszy od tego punktu dzielenie powtarza się cyklicznie • W każdym cyklu dodatkowe bity dzielnej są dołączane do reszty

    cząstkowej, aż wynik będzie większy lub równy dzielnikowi. • Proces ten jest kontynuowany aż wszystkie bity dzielnej zostaną

    zużyte. 19

    Dzielnik

  • Algorytm dzielenia liczb binarnych bez znaku

    20

  • Algorytm dzielenia liczb binarnych w reprezentacji uzupełnienia do dwóch

    1. załaduj dzielnik do rejestru M, a dzielną do rejestrów A i Q. np. 4 bitowa liczba 0111 → 0000’0111 1001 → 1111’1001 2. przesuń A i Q w lewo o jedną pozycję bitową

    3. jeśli M i A mają takie same znaki to A ← A- M, przeciwnym razie A ← A + M

    4. powyższa operacja jest udana jeśli znak A pozostaje taki sam po zakończeniu operacji a) jeśli operacja jest udana lub (A=0 i Q=0) to ustaw Q0 ← 1 b) Jeśli operacja jest nieudana i (A ≠ 0 lub Q ≠ 0) to ustaw Q0 ← 0 i przywróć poprzednią wartość A 5. powtórz kroki od 2 do 4 tyle razy ile jest pozycji bitowych w Q 6. reszta jest zawarta w A. Jeśli znaki dzielnika i dzielnej były takie same to iloraz jest w Q. W przeciwnym razie iloraz jest odwrotnością zawartości rejestru Q 21

  • Algorytm dzielenia liczb binarnych w reprezentacji uzupełnienia do dwóch

    Przykład: (-7) : 3 = -2 i reszta -1 ( 1001 : 0011 → M)

    A Q 1111 1001 wartość początkowa

    1111 0010 przesunięcie w lewo

    0010 dodawanie

    1111 0010 przywrócenie

    1110 0100 przesunięcie w lewo

    0001 dodawanie

    1110 0100 przywrócenie

    1100 1000 przesunięcie w lewo

    1111 dodawanie

    1111 1001 ustawienie Q0 =1

    1111 0010 przesunięcie w lewo

    0010 dodawanie

    1111 0010 przywrocenie

    razie iloraz jest odwrotnością zawartości rejestru Q 1101 + 1 -------- 1110 = -2 Reszta 1111 =-1 22

    Slajd numer 1Slajd numer 2Slajd numer 3Slajd numer 4Slajd numer 5Slajd numer 6Slajd numer 7Slajd numer 8Slajd numer 9Slajd numer 10Slajd numer 11Slajd numer 12Slajd numer 13Slajd numer 14Slajd numer 15Slajd numer 16Slajd numer 17Slajd numer 18Slajd numer 19Slajd numer 20Slajd numer 21Slajd numer 22