Akdemi Górniczo-Hutnicz Wydził Elektrotechniki, Automtyki, Informtyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI SYSTEMY KODOWANIA ORAZ REPREZENTACJA I ARYTMETYKA LICZB Adrin Horzyk www.gh.edu.pl
SYSTEMY KODOWANIA LICZB W celu ujednoliceni obliczeń numerycznych n różnych pltformch sprzętowych wprowdzono stndrd IEEE 754 dl zpisu liczb zmiennoprzecinkowych (o zpisie zmiennopozycyjnym). Stndrd ten definiuje dw rodzje liczb zmiennoprzecinkowych: - o pojedynczej precyzji (3-bitowe) - o podwójnej precyzji (64-bitowe) Kod binrny tych liczb podzielony jest n 3 części: Bity cechy Bit znku Bit znku cechy Bity mntysy Bity cechy
SYSTEMY KODOWANIA LICZB Bit znku z przyjmuje wrtość: 0 dl liczb dodtnich 1 dl liczb ujemnych Bit znku cechy s przyjmuje wrtość: 0 dl liczb o wykłdniku dodtnim (dużych liczb c ) 1 dl liczb o wykłdniku ujemnym (młych liczb -c ) Bity cechy określją: wykłdnik potęgowy dl podstwy dwójkowej Bity mntysy: Zwierją tylko bity ułmkowe (po przecinku dziesiętnym) Liczb określon jest więc w nstępujący sposób: l = 1 z m 1 S c
KODOWANIE STAŁO i ZMIENNOPOZYCYJNE Kodownie stłopozycyjne służy do zpisu liczb cłkowitych l: n l sei i0 Kodownie zmiennopozycyjne służy do zpisu liczb wymiernych x: m t t i1 ogrniczone do reprezentcji tylko t njistotniejszych bitów tych liczb w systemie binrnym. Powstje więc pewien błąd reprezentcji ~ rdx x n skutek obcięci njmniej znczących bitów i zokrągleni mntysy do t bitów: x Możemy więc reprezentowć liczby z pewnego ogrniczonego zkresu: i, i ( e cmin mx d t x min 1 mx Mniejsze będą zstępowne zerem, co nzywmy błędem niedomiru, większe będę powodowć błąd ndmiru, powodującym przerwnie obliczeń. n 0 i e t 1 dl l e rd x t t rdx x 1 x 1 c t 0) x d t c c 1 rd s m t c
PRZYKŁAD Obliczni modułu z liczby zespolonej: z bi 0, i 1 klsycznym lgorytmem: z b 1 przeksztłconym lgorytmem: z b 1 W klsycznym lgorytmie wystąpi ndmir, jeśli lub b są co do modułu większe od c mx b b gdy gdy b b niedomir, jeśli lub b są co do modułu mniejsze od 1 c min zś przeksztłcony lgorytm pozwl n obliczenie modułu z liczby zespolonej z dl dowolnych i b z zkresu reprezentownych liczb.
ZAKRESY LICZB Zkres liczb zmiennoprzecinkowych IEEE 754 w pojedynczej precyzji: Z (IEEE 754) = - 3,4 10 38... 3,4 10 38 Oferują precyzję 7 cyfr dziesiętnych Zkres liczb zmiennoprzecinkowych IEEE 754 w podwójnej precyzji: Z (IEEE 754) = - 1,8 10 308... 1,8 10 308 Oferują precyzję 15-16 cyfr dziesiętnych Nie liczb (NN): Nieskończoności: Dodtni: Ujemn:
Liczenie n 10 plcch? A dlczego włśnie n 10? A może by tk n dwóch jk komputery? 0 1 http://www.mtemtyczny-swit.pl/013/10/tbliczk-mnozeni-n-plcch.html
Liczenie zleży od systemu liczbowego W systemie 16-kowym tbliczk mnożeni wygląd inczej: Ile jest 8 * 9 w systemie 16-kowym? 48!
KONWERSJE POMIĘDZY SYSTEMAMI LICZBOWYMI Tą smą liczbę możemy zpisć w różnych systemch liczbowych, np.: 11111001011 = 010 3 = 13303[4] = 30440[5] = 1313[6] = = 5550[7]= 3713[8] = 656[9] = 1995[10] = 1554[11] = 11A3[1] = = BA6[13] = A7[14] = 8D0[15] = 7CB[16] Konwersje pomiędzy systemmi liczbowymi dokonujemy przede wszystkim w związku z możliwością wykonywni opercji mtemtycznych i porównń w określonym systemie liczbowym przez komputer w systemie -kowym, przez człowiek w systemie 10-nym. Przeksztłcenie liczby z systemu 10-nego n system -kowy poprzez dzielenie: (1995)[10] = (11111001011) 1995 : = 997 r 1 997 : = 498 r 1 498 : = 49 r 0 W przeksztłceniu odwrotnym wykonujemy mnożenie przez 49 : = 14 r 1 podstwę systemu, z którego dokonujemy przeksztłceni: 14 : = 6 r 0 6 : = 31 r 0 31 : = 15 r 1 15 : = 7 r 1 7 : = 3 r 1 3 : = 1 r 1 1 : = 0 r 1 (11111001011) = (((((((((((1*)+1)*+1)*+1)*+1)*+0)*+0)*+1)*+0)*+1)*+1)* = (1995)[10]
KONWERSJE LICZB WYMIERNYCH Liczby wymierne w obcym systemie njpierw przeksztłcmy n ilorz liczb cłkowitych, nstępnie dokonujemy ich konwersji do znnego systemu, gdzie dokonujemy dzieleni: (0,01101)[] = (1101)[] (100000)[] = (13)[10] (3)[10] W przypdku odwrotnego przeksztłceni mnożymy przeksztłcną liczbę przez podstwę systemu docelowego: 0,4065 = (0),8150 0,8150 * = (1),6500 0,6500 * = (1),5000 0,5000 * = (0),50000 0,50000 * = (1).00000 = (0, 4065)[10] Tkie liczby jk 0,45 czy 0,56 nie posidją skończonego rozwinięci dwójkowego, więc dlsze opercje wykonywn n tkich liczbch mogą prowdzić do błędów numerycznych n skutek zokrągleni!
BIBLIOGRAFIA I LITERATURA UZUPEŁNIAJĄCA 1. L. Bnchowski, K. Diks, W. Rytter: Algorytmy i struktury dnych, WNT, Wrszw, 001.. Z. Fortun, B. Mcukow, J. Wąsowski: Metody numeryczne, WNT, Wrszw, 1993. 3. J. i M. Jnkowscy: Przegląd metod i lgorytmów numerycznych, WNT, Wrszw, 1988. 4. A. Kiełbsiński, H. Schwetlick: Numeryczn lgebr liniow, WNT, Wrszw 199. 5. M. Sysło: Elementy Informtyki. 6. A. Szepietowski: Podstwy Informtyki. 7. R. Tdeusiewicz, P. Moszner, A. Szydełko: Teoretyczne podstwy informtyki. 8. W. M. Turski: Propedeutyk informtyki. 9. N. Wirth: Wstęp do progrmowni systemtycznego. 10. N. Wirth: ALGORYTMY + STRUKTURY DANYCH = PROGRAMY.