110 likes | 255 Views
Informatyka I Język ANSI C. Kody pozycyjne. Liczby ca ł kowite Interpretacja notacji. ( x n x n-1 x n-2 .... x 1 x 0 ) p = = x n • p n + x n-1 • p n-1 + x n-2 • p n-2 + ... x 1 • p + x 0 Przykład: 152 10 = 1 • 100 + 5 • 10 +2 • 1 = 152 152 8 = 1 • 64 + 5 • 8 + 2 = 106
E N D
Informatyka IJęzyk ANSI C Kody pozycyjne
Liczby całkowiteInterpretacja notacji (xnxn-1xn-2....x1x0)p= = xn•pn + xn-1•pn-1 + xn-2•pn-2 + ... x1•p + x0 Przykład: 15210 = 1•100 + 5•10 +2•1 = 152 1528 = 1•64 + 5•8 + 2 = 106 15216 = 1•256 + 5•16 + 2 = 338 1522 = ERROR!!
Procedury zamiany kodów • Przejście z kodu dwójkowego na heksadecymalny Grupujemy od końca zera i jedynki w paczki po cztery i wyzna-czamy 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ę za-pisaną 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 wyznacza-my 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
Algorytm przejścia do kodu o podstawie p Przykład • dzielimy przekształcaną liczbę przez p dopóki nie uzyskamy 0 • zapamiętujemy reszty z kolej-nych dzieleń • zapisujemy zapamiętane reszty w kolejności od końca
Dobrze wiedzieć... • Należy znać potęgi dwójki przynajmniej od 21do 216 oraz 232=4 294 967 296 • Definicja 1B=8 bitów = 23bitów • Definicja 1kB=210B=1024B (ca 1000 B) • Związek pomiędzy rozmiarem rejestru (adresu) a wymiarem pamięci operacyjnej: 2B =16 bitów 216B=26kB=64kB
Operacje Arytmetyczne • Mnożenie • Dodawanie 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
Arytmetyka uzupełnieniowa do dwóch2'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 najedynki i odwrotnie 2. Dodajemy 1
Przykłady c.d. • Obliczamy wartość wyrażenia 11 – 5. Wszystkie operacje na jednym bajcie. WŁASNOŚĆ NOTACJI Najstarszy bit jest bitem znaku 1 – liczba ujemna • Obliczamy wartość wyrażenia 100+90. Wszystkie operacje na jednym bajcie. WNIOSEK Wynik obliczeń: 100 + 90 = -66 Ciekawostka: 100 + 90 + 66 =256 = 28
WŁASNOŚCI KONWENCJIdodajemy 1 • Tabela ma 28 = 256 wierszy (i wartości) • Interpretacja zależy od przyjętej konwencji • W arytmetyce bez-wzglę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
LICZBY RZECZYWISTE • Zapis w postaci p2m, p – precyzja, m – mantysa; • p ma postać0.1.... w związku z tym trzech początko-wych 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 uzu-pełnieniowej do dwóch (jak się jest komputerem).