Informatyka I Jzyk ANSI C Kody pozycyjne Wykad

  • Slides: 11
Download presentation
Informatyka I Język ANSI C Kody pozycyjne Wykład 2 1

Informatyka I Język ANSI C Kody pozycyjne Wykład 2 1

Liczby całkowite Interpretacja notacji (xnxn-1 xn-2. . x 1 x 0)p= = xn •

Liczby całkowite Interpretacja notacji (xnxn-1 xn-2. . x 1 x 0)p= = xn • pn + xn-1 • pn-1 + xn-2 • pn-2 +. . . x 1 • p + x 0 Przykład: 15210 = 1 • 100 + 5 • 10 +2 • 1 = 1528 = 1 • 64 + 5 • 8 + 2 = 106 15216 = 1 • 256 + 5 • 16 + 2 = 338 1522 = ERROR!! Wykład 2 2

Więcej przykładów Dziesiętny (decymalny) Wykład 2 Dwójkowy Heksadecymalny (binarny) Ósemkowy (oktalny) 0 0 1

Więcej przykładów Dziesiętny (decymalny) Wykład 2 Dwójkowy Heksadecymalny (binarny) Ósemkowy (oktalny) 0 0 1 1 2 10 2 2 3 11 3 3 4 100 4 4 8 1000 8 10 9 1001 9 11 10 1010 A 12 11 1011 B 13 15 1111 F 17 16 10000 10 20 163 10100011 A 3 243 3

Procedury zamiany kodów • Przejście z kodu dwójkowego na heksadecymalny Grupujemy od końca zera

Procedury zamiany kodów • Przejście z kodu dwójkowego na heksadecymalny Grupujemy od końca zera i jedynki w paczki po cztery i wyznaczamy wartość każdej paczki jako jedną pozycję zapisu • Przejście z kodu heksadecymalnego na dwójkowy Każdą cyfrę z zapisu szesnastkowego zamieniamy na liczbę zapisaną w kodzie dwójkowym na czterech pozycjach • Przejście z kodu dwójkowego na ósemkowy Grupujemy od końca zera i jedynki w paczki po trzy i wyznaczamy wartość każdej paczki jako jedną pozycję zapisu • Przejście z kodu ósemkowego na dwójkowy Każdą cyfrę z zapisu oktalnego zamieniamy na liczbę zapisaną w kodzie dwójkowym na trzech pozycjach Wykład 2 4

Algorytm przejścia do kodu o podstawie p • dzielimy przekształcaną liczbę przez p dopóki

Algorytm przejścia do kodu o podstawie p • dzielimy przekształcaną liczbę przez p dopóki nie uzyskamy 0 • zapamiętujemy reszty z kolejnych dzieleń • zapisujemy zapamiętane reszty w kolejności od końca Przykład DEC BIN 163 1 81 1 40 0 DEC OCT 163 3 20 4 2 2 0 END Wykład 2 20 0 10 0 5 1 2 0 1 1 0 END 5

Dobrze wiedzieć. . . • Należy znać potęgi dwójki przynajmniej od 21 do 216

Dobrze wiedzieć. . . • Należy znać potęgi dwójki przynajmniej od 21 do 216 oraz 232 = 4 294 967 296 • Definicja 1 B = 8 bitów = 23 bitów • Definicja 1 k. B=210 B=1024 B (ca 1000 B) • Związek pomiędzy rozmiarem rejestru (adresu) a wymiarem pamięci operacyjnej: 2 B =16 bitów 216 B=26 k. B=64 k. B Wykład 2 6

Operacje Arytmetyczne • Dodawanie • Mnożenie 00001011 11 +00000101 +5 • 101 • 5

Operacje Arytmetyczne • Dodawanie • Mnożenie 00001011 11 +00000101 +5 • 101 • 5 00010000 16 1011 55 1011__ 110111 Mnożenie przez 2 - przesunięcie w lewo z dopisaniem 0 11*2=22 <=> 1011*10=10110 Dzielenie przez 2 - przesunięcie w prawo z wypadaniem najmłodszego bitu 11/2=5 <=> 1011/10=101 Wykład 2 7

Arytmetyka uzupełnieniowa do dwóch 2's Complementary Arithmetic Jest to sposób na uwzględnienie liczb ujemnych.

Arytmetyka uzupełnieniowa do dwóch 2's Complementary Arithmetic Jest to sposób na uwzględnienie liczb ujemnych. Specjalny kod zapisu pozwala sprowadzić odejmowanie liczb całkowitych do ich dodawania: x – y = x + (-y) ALGORYTM ZMIANY ZNAKU x -x 1. zamieniamy wszystkie zera na jedynki i odwrotnie 2. Dodajemy 1 Przykład 1 4 -4 00000100 4 11111011 1 0 + 1 Dodajemy 1 11111100 Ponoć – 4 ? 00000011 W drugą stronę + 1 Dodajemy 1 00000100 Hura! Znowu 4! Wykład 2 8

Przykłady c. d. 1. Obliczamy wartość wyrażenia 11 – 5. Wszystkie operacje na jednym

Przykłady c. d. 1. Obliczamy wartość wyrażenia 11 – 5. Wszystkie operacje na jednym bajcie. WŁASNOŚĆ NOTACJI Najstarszy bit jest bitem znaku 1 – liczba ujemna 2. Obliczamy wartość wyrażenia 100+90. Wszystkie operacje na jednym bajcie. WNIOSEK Wynik obliczeń: 100 + 90 = -66 Ciekawostka: 100 + 90 + 66 =256 = 28 Wykład 2 00000101 5 11111011 -5 00001011 11 + 11111011 + (-5) 00000110 6 01100100 + 01011010 + 90 10111110 ? ? 190 01000001 1 0 01000010 66 9

WŁASNOŚCI KONWENCJI dodajemy 1 Binarnie Bez. 2’s c 0000 0 0 00000001 1 1

WŁASNOŚCI KONWENCJI dodajemy 1 Binarnie Bez. 2’s c 0000 0 0 00000001 1 1 00000010 2 2 00000011 3 3 01111111 127 10000000 128 -128 10000001 129 -127 . . Wykład 2 11111110 254 -2 1111 255 -1 • Tabela ma 28 = 256 wierszy (i wartości) • Interpretacja zależy od przyjętej konwencji • W arytmetyce bezwzględnej: 0 255 • W arytmetyce uzupeł. do dwóch: -128 127 • Na dwóch bajtach można zapamiętać 216 = 65536 wartości • Bezwg: 0 65535 • 2’s: -32768 32767 10

LICZBY RZECZYWISTE • Zapis w postaci p 2 m, p – precyzja, m –

LICZBY RZECZYWISTE • Zapis w postaci p 2 m, p – precyzja, m – mantysa; • p ma postać 0. 1. . w związku z tym trzech początkowych symboli się nie zapamiętuje bo zawsze są takie same. Zamiast tego zapamiętuje się znak; • m jest zwiększane o połowę zakresu, tak aby było zawsze nieujemne; • Wniosek: Wcale nie jest tak łatwo pomnożyć liczbę rzeczywistą przez liczbę zapisaną w arytmetyce uzupełnieniowej do dwóch (jak się jest komputerem). Wykład 2 11