Informacje informatyka to nauka o przetwarzaniu i przechowywaniu informacji informacja to: Podstawy informatyki (2) konstatacja stanu rzeczy, wiadomość dr inż. Sebastian Pluta powiadamianie spoÅ‚eczeÅ„stwa lub okreÅ›lonych zbiorowoÅ›ci w pluta@icis.pcz.pl sposób zobiektywizowany, systematyczny i konkretny za pomocÄ… Å›rodków masowego przekazu Instytut Informatyki Teoretycznej i Stosowanej obiekt abstrakcyjny, który w postaci zakodowanej może być przechowywany, przesyÅ‚any, przetwarzany i użyty do sterowania Nowa encyklopedia powszechna, PWN 1998 podstawowa jednostka informacji to bit wystarcza do zakomunikowania jednego z co najwyżej dwóch zdarzeÅ„ Podstawy informatyki (2) p.1 Systemy liczbowe (1) Systemy liczbowe (2) system pozycyjny to taki, w którym znaczenie znaków zależy od ich najbardziej popularnym systemem jest system dziesiÄ™tny, pozycji dla którego N = 10 system wagowy to taki, w którym dla każdej pozycji znaku przypisana na przykÅ‚ad dla liczby 4703,32 zapisanej w systemie dziesiÄ™tnym: jest inna waga 3 L = ai10i ogólny opis pozycyjnego wagowego systemu liczbowego: " i=-2 n L = aiNi czyli: " i=m L = 2 · 10-2 + 3 · 10-1 + 3 · 100 + 0 · 101 + 7 · 102 + 4 · 103 = gdzie: = 0,02 + 0,3 + 3 + 0 + 700 + 4000 = 4703,32 N jest podstawÄ… systemu, N 2, m,n " Z, m 0,n 0,m n, a " {0,...,N - 1} Podstawy informatyki (2) p.2 Podstawy informatyki (2) p.3 Systemy liczbowe (3) Przeliczanie liczb w różnych systemach zamiana caÅ‚kowitej liczby dziesiÄ™tnej L na liczbÄ™ w systemie o inne systemy: (L)N podstawie N: na przykÅ‚ad dla liczby (4703,32)8: 3 L ÷ N = L1 reszta R1 L = ai8i " L1 ÷ N = L2 reszta R2 i=-2 . . . . . . . . . . . . czyli: Lk-1 ÷ N = 0 reszta Rk L = 2 · 8-2 + 3 · 8-1 + 3 · 80 + 0 · 81 + 7 · 82 + 4 · 83 = (L)N = RkRk-1 ...R2R1 = 0,03125 + 0,375 + 3 + 0 + 448 + 2048 = 2499,40625 Podstawy informatyki (2) p.4 Podstawy informatyki (2) p.5 Przeliczanie liczb w różnych systemach Przeliczanie liczb w różnych systemach na przykÅ‚ad zamiana liczby 3490 na liczbÄ™ w systemie o podstawie 8: zamiana uÅ‚amka dziesiÄ™tnego L na uÅ‚amek w systemie o podstawie N: 3490 ÷ 8 = 436 reszta 2 L · N = L1 cz. cakowita C1 436 ÷ 8 = 54 reszta 4 cz. uamkowa U1 · N = L2 cz. cakowita C2 . . . . 54 ÷ 8 = 6 reszta 6 . . . . . . . . 6 ÷ 8 = 0 reszta 6 cz. uamkowa Uk-1 · N = Ck cz. cakowita Ck (L)N = 0,C1C2 ...Ck czyli: 3490 = (6642)8 Podstawy informatyki (2) p.6 Podstawy informatyki (2) p.7 Przeliczanie liczb w różnych systemach System dwójkowy i szesnastkowy (1) na przykÅ‚ad zamiana uÅ‚amka 0,9692382125 na liczbÄ™ w systemie o system dwójkowy (binarny) jest podstawowym systemem liczbowym w podstawie 8: informatyce 0,9692382125 · 8 = 7,75390625 cz. caÅ‚. 7 system szesnastkowy (heksadecymalny) jest czÄ™sto uzupeÅ‚nieniem systemu binarnego w informatyce 0,75390625 · 8 = 6,03125 cz. caÅ‚. 6 znaczne zmniejszenie iloÅ›ci cyfr liczby w systemie 0,03125 · 8 = 0,25 cz. caÅ‚. 0 heksadecymalnym w stosunku do liczby binarnej Å‚atwość przeliczania liczb binarnych na szesnastkowe i na odwrót 0,25 · 8 = 2,0 cz. caÅ‚. 2 czyli: 0,9692382125 = (0,7602)8 Podstawy informatyki (2) p.8 Podstawy informatyki (2) p.9 System dwójkowy i szesnastkowy (2) System dwójkowy i szesnastkowy (3) Interpretacja binarna liczb w systemie szesnastkowym: zamiana liczb binarnych na heksadecymalne: (1001110111010)2 = dziesiÄ™tna dwójkowa szesnast. dziesiÄ™tna dwójkowa szesnast. = (0001|0011|1011|1010)2 = (13BA)16 0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 10 1010 A zamiana liczb heksadecymalnych na binarne: 3 0011 3 11 1011 B (87DF3)16 = (1000|0111|1101|1111|0011)2 = 4 0100 4 12 1100 C = (10000111110111110011)2 5 0101 5 13 1101 D 6 0110 6 14 1110 E 7 0111 7 15 1111 F Podstawy informatyki (2) p.10 Podstawy informatyki (2) p.11 Jednostki informacji (1) Jednostki informacji (2) 1 bit 1 b 103 B = 1000 B = 1 kB (kilobajt) 1 bajt (ang. byte) 1 B = 8 b 106 B = 1000000 B = 1000kB = 1 MB (megabajt) na jednym bajcie można zapisać 28 czyli 256 różnych informacji 109 B = 1000000000 B = 1000MB = 1 GB (gigabajt) 1012 B = 1000000000000 B = 1000GB = 1 TB (terabajt) 210 B = 1024 B = 1 kB (kilobajt) 220 B = 1048576 B = 10242 B = 1024kB = 1 MB (megabajt) 210 B = 1024 B = 1 KiB (kibibajt) 230 B = 1073741824 B = 10243 B = 1024MB = 1 GB (gigabajt) 220 B = 1048576 B = 10242 B = 1024KiB = 1 MiB (mebibajt) 240 B = 11099511627776 B = 10244 B = 1024GB = 1 TB (terabajt) 230 B = 1073741824 B = 10243 B = 1024MiB = 1 GiB (gibibajt) 240 B = 11099511627776 B = 10244 B = 1024GiB = 1 TiB (tebibajt) Podstawy informatyki (2) p.12 Podstawy informatyki (2) p.13 Kodowanie liczb caÅ‚kowitych (1) Kodowanie liczb caÅ‚kowitych (2) dla liczb caÅ‚kowitych ze znakiem stosuje siÄ™ tzw. kod uzupeÅ‚nieÅ„ (U2): na jednym bajcie można zapisać liczby 0;255 , czyli (00000000)2;(11111111)2 bit 7 6 5 4 3 2 1 0 w celu zwiÄ™kszenia zakresu liczb caÅ‚kowitych, stosuje siÄ™ zapis na waga -128 64 32 16 8 4 2 1 wiÄ™kszej liczbie bajtów, np.: dla dwóch bajtów można zapisać 216 liczb, czyli 0;65535 . na jednym bajcie można za pomocÄ… tego kodu przedstawić liczby z dla liczb caÅ‚kowitych ujemnych, jeżeli przyjmiemy jeden bit znaku: zakresu -128;127 bit 7 6 5 4 3 2 1 0 00000000 0 00000001 1 waga znak 64 32 16 8 4 2 1 na przykÅ‚ad: 10000000 -128 10000001 -127 w przedstawiony sposób nie koduje siÄ™ liczb ze znakiem, ponieważ: 01111111 127 11111111 -1 00000000 0 10000000 -0 Podstawy informatyki (2) p.14 Podstawy informatyki (2) p.15 Kodowanie liczb caÅ‚kowitych (3) Kodowanie liczb caÅ‚kowitych (4) PrzykÅ‚adowe operacje na liczbach zapisanych w kodzie uzupeÅ‚nieÅ„: liczbÄ™ przeciwnÄ… uzyskuje siÄ™ poprzez zanegowanie wszystkich bitów i dodanie wartoÅ›ci 1, np.: operacje arytmetyczne wykonuje siÄ™ jak na zwykÅ‚ych liczbach binarnych NOT 0 0 0 0 0 0 0 1 1 ignorujÄ…c pożyczki i przeniesienia poza zakres, np.: 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 + 1 1 1 1 1 1 1 1 -1 + 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 -1 1 0 1 1 0 1 0 1 -75 + 0 0 1 1 1 0 0 1 57 NOT 1 0 1 1 0 1 0 1 -75 1 1 1 0 1 1 1 0 -18 0 1 0 0 1 0 1 0 + 1 0 0 1 1 1 0 0 1 57 0 1 0 0 1 0 1 1 75 - 1 1 1 1 1 1 1 1 -1 1 0 0 1 1 1 0 1 0 58 Podstawy informatyki (2) p.16 Podstawy informatyki (2) p.17 Kodowanie liczb caÅ‚kowitych (5) Kodowanie liczb rzeczywistych (1) spotyka siÄ™ również kod uzupeÅ‚nieÅ„ o nastÄ™pujÄ…cych wagach: kodowanie liczb rzeczywistych z przecinkiem umieszczonym na staÅ‚e , np: bit 7 6 5 4 3 2 1 0 waga 128 -64 -32 -16 -8 -4 -2 -1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 1 na jednym bajcie można za pomocÄ… tego kodu przedstawić liczby z daje wartość: zakresu -127;128 255 255 = 255,99609375 256 na przykÅ‚ad: taki sposób kodowania ma wiele wad: nieduże liczby możliwe do zakodowania 00000000 0 00000001 -1 maÅ‚a dokÅ‚adność (precyzja) zapisu części uÅ‚amkowej 10000000 128 10000001 127 trudny do oszacowania bÅ‚Ä…d bezwzglÄ™dny obliczeÅ„ 01111111 -127 11111111 1 operacje na liczbach wykonuje siÄ™ jak w każdym kodzie uzupeÅ‚nieÅ„ Podstawy informatyki (2) p.18 Podstawy informatyki (2) p.19 Kodowanie liczb rzeczywistych (2) Kodowanie liczb rzeczywistych (3) zapis zmiennoprzecinkowy: liczby zmiennoprzecinkowe o ustalonej precyzji sÄ… liczbami przybliżonymi L = s · m · Nc gdzie: precyzja liczb zmiennoprzecinkowych to liczba cyfr za pomocÄ… których N podstawa systemu wyrażona jest mantysa s = sgn(L), jeÅ›li wynik jakiejkolwiek operacji wymaga wiÄ™kszej precyzji to zostanie c cecha, caÅ‚kowity wykÅ‚adnik on zaokrÄ…glony m mantysa, znormalizowana najczęściej do przedziaÅ‚u (0,1)N;1) powoduje to tzw. bÅ‚Ä™dy zaokrÄ…gleÅ„ w obliczeniach wykonywanych na dla liczby 2389,8765: liczbach zmiennoprzecinkowych, np.: 2389,8765 = 0,23898765 · 104 liczba 0,249 · 1012 wymaga dla zapisu mantysy 3 cyfr dziaÅ‚anie: dla liczby (11010,11011)2: 0,249 · 1012 + 1 = 249000000001 = 0.249000000001 · 1012 (11010,11011)2 = (0,1101011011)2 · 2(101)2 co powoduje konieczność użycia 12 cyfr do zapisu mantysy Podstawy informatyki (2) p.20 Podstawy informatyki (2) p.21 Kodowanie liczb zmiennoprzecinkowych Kodowanie liczb zmiennoprzecinkowych dla kodowania (FP2) liczb zmiennoprzecinkowych przyjmuje siÄ™ dla liczby: (00010110)(FP2) mantysÄ™ znormalizowanÄ… do przedziaÅ‚u 1;2) czyli (1)2;(10)2) c = (0010)(U2) = 2 m = (1,110)2 = 13 mantysÄ™ zapisuje siÄ™ w postaci liczby caÅ‚kowitej dodatniej oraz bitu 4 3 L = (-1)0 · 1 · 22 = 7 znaku, cechÄ™ przy pomocy kodu uzupeÅ‚nieÅ„ 4 przyjmijmy dla jednego bajta: dla liczby: 0,875 znak mantysy cecha mantysa 0,875 = (0,111)2 = (-1)0 · (1,11)2 · 2(-1)2 c = -1 = (1111)(U2) bit 7 6 5 4 3 2 1 0 m = (1,110)2 waga s -8 4 2 1 2-1 2-2 2-3 0,875 = (01111110)(FP2) L = (-1)s · 1.m · 2c Podstawy informatyki (2) p.22 Podstawy informatyki (2) p.23 Kodowanie liczb zmiennoprzecinkowych Kodowanie znaków (liter) (1) norma IEEE 754 obejmuje trzy standardowe formaty kodowania liczb najbardziej popularnym standardem kodowania znaków jest kod ASCII zmiennoprzecinkowych: zapisuje znaki na 7 bitach typ liczby bity cechy bity mantysy interpretacja obejmuje kody od 0 do 127 REAL*4, short real 8 23 (-1)s · 1.m · 2c np. wielkie litery alfabetu Å‚aciÅ„skiego odpowiadajÄ… kodom 65 90, maÅ‚e 97 122, cyfry arabskie 48 57 REAL*8, long real 11 52 (-1)s · 1.m · 2c użycie pozostaÅ‚ego ósmego bitu bajta tworzy tzw. Extended ACSII REAL*10, temp real 15 64 (-1)s · 0.m · 2c (rozszerzony kod ASCII) maksymalna wartość cechy c przy zerowej wartoÅ›ci mantysy m daje w potrzeba reprezentacji innych znaków (np. narodowych znaków zależnoÅ›ci o bitu znaku +INF lub -INF diakrytycznych) spowodowaÅ‚a potrzebÄ™ stworzenia dodatkowych kodów maksymalna wartość cechy c dla dowolnej wartoÅ›ci różnej od zera istnieje kilka standardów kodowania polskich znaków, najbardziej mantysy m reprezentuje przypadek dla którego ciÄ…g bitów nie jest liczbÄ… popularne to: ISO-8859-2 (Latin-2) i Windows-1250. NaN (ang. Not a Number) Podstawy informatyki (2) p.24 Podstawy informatyki (2) p.25 Kodowanie znaków (liter) (2) Algebra Boole a (1) współczesnym standardem kodowania znaków jest Unicode (UCS) Algebra Boole a jest algebrÄ… z trzema operacjami na argumentach z dwuwartoÅ›ciowego zbioru {0,1} powstaÅ‚ jako próba ujednolicenia kodowania znaków różnych jÄ™zyków w Internecie wynik tych operacji jest również zawarty w podanym dwuwartoÅ›ciowym pierwotnie skÅ‚adaÅ‚ siÄ™ z 16 bitów zbiorze dzisiejszy standard UCS ISO 10646 operuje na 31-bitach operacje algebry Boole a: UCS obejmuje wszystkie podstawowe alfabety Å›wiata: arabski, suma logiczna (suma boolowska, alternatywa, (") hebrajski, japoÅ„ski, koreaÅ„ski, chiÅ„ski dwuargumentowa kody liter znaków diakrytycznych alfabetu Å‚aciÅ„skiego znajdujÄ… siÄ™ jeżeli co najmniej jeden z argumentów jest równy 1, to wynik w zakresie 256 383 Unicode jest równy 1 w przeciwnym razie przyjmuje wartość 0 Podstawy informatyki (2) p.26 Podstawy informatyki (2) p.27 Algebra Boole a (2) Algebra Boole a (3) operacje algebry Boole a (c. d.): DziaÅ‚ania Algebry Boole a speÅ‚niajÄ… nastÄ™pujÄ…ce aksjomaty: iloczyn logiczny (iloczyn boolowski, koniunkcja, '") przemienność dwuargumentowy a '" b = b '" a wynik iloczynu jest równy 1 wtedy i tylko wtedy, gdy wszystkie a (" b = b (" a argumenty przyjmujÄ… wartość 1, w przeciwnym razie przyjmuje wartość 0 Å‚Ä…czność negacja (dopeÅ‚nienie, inwersja, ) jednoargumentowa (a '" b) '" c = a '" (b '" c) wynik negacji jest równy 1, gdy argument ma wartość 0 i (a (" b) (" c = a (" (b (" c) odwrotnie rozdzielność a (" (b '" c) = (a (" b) '" (a (" c) a '" (b (" c) = (a '" b) (" (a '" c) Podstawy informatyki (2) p.28 Podstawy informatyki (2) p.29 Algebra Boole a (4) Algebra Boole a (2) identyczność Tabela prawdy dla dwóch zmiennych: a (" 0 = a, a (" 1 = 1 a '" 1 = a, a '" 0 = 0 dopeÅ‚nienie a b a '" b a (" b a2 b2 a (" a2 = 1 0 0 0 0 1 1 a '" a2 = 0 1 0 0 1 0 1 prawa De Morgana 0 1 0 1 1 0 (a (" b)2 = a2 '" b2 1 1 1 1 0 0 (a '" b)2 = a2 (" b2 Podstawy informatyki (2) p.30 Podstawy informatyki (2) p.31 Historia informatyki (1) Historia informatyki (2) od 440 p.n.e. do XVIII wieku liczydÅ‚o Abacusa urzÄ…dzenie 1620 r. suwak logarytmiczny (suwak rachunkowy) wynaleziony przez uÅ‚atwiajÄ…ce liczenie, prekursor liczydÅ‚a i maszyn liczÄ…cych, skÅ‚adaÅ‚o siÄ™ z Edmunda Guntera prosty przyrzÄ…d uÅ‚atwiajÄ…cy obliczenia, powszechnie tablicy z pionowymi rowkami, w których umieszczano kamyki używany przez inżynierów do koÅ„ca lat 70-tych Podstawy informatyki (2) p.32 Podstawy informatyki (2) p.33 Historia informatyki (3) Historia informatyki (4) 1642 r. arytmometr mechaniczna maszyna liczÄ…ca, poprzedniczka 1941 r. Konrad Zuse budowa pierwszego kalkulatora kalkulatora, wynaleziona przez Blaise Pascal a elektromechanicznego 1946 r. ENIAC, 1948 r. Mark I prezentacje pierwszych maszyn cyfrowych 1822 r. projekt maszyny analitycznej Charles a Babbage a wykorzystujÄ…cej karty perforowane Podstawy informatyki (2) p.34 Podstawy informatyki (2) p.35 Historia informatyki (5) Historia informatyki (6) 1958 r. XYZ pierwsza polska maszyna cyfrowa 1974 r. Intel powstanie mikroprocesora 16-bitowego 8080 1967 r. rozpoczÄ™cie seryjnej produkcji komputera ODRA 1024 1977 r. pierwsze komputery osobiste zaprezentowane przez firmÄ™ Apple Computer 1969 r. Dennis Ritchie i Ken Thompson, Bell Labs pierwsza wersja systemu UNIX 1981 r. IBM udostÄ™pnia pierwsze komputery osobiste swej architektury wyposażone w system operacyjny MS-DOS 1.0 1971 r. Intel pierwszy komercyjny mikroprocesor (4004): 4 bitowy, cena: 300$ 1982 r. Compaq pierwszy komputer przenoÅ›ny 1983 r. funkcjonalny poczÄ…tek Internetu 1992 r. liczba hostów w Internecie siÄ™ga miliona 1992 r. DEC Alpha pierwszy procesor 64-bitowy Podstawy informatyki (2) p.36 Podstawy informatyki (2) p.37