PODSTAWY INFORMATYKI Informatyka? - definicja Definicja opracowana przez ACM (Association for Computing Machinery) w 1989 roku: Informatyka to systematyczne badanie procesów algorytmicznych, które charakteryzują i przetwarzają informację, teoria, analiza, projektowanie, badanie efektywności, implementacja i zastosowania procesów algorytmicznych. Podstawowe pytanie informatyki to: co można (efektywnie) zalgorytmizować? 1
Informatyka? - definicja Definicja (Wikipedia Wolna Encyklopedia): Informatyka to dziedzina nauki i techniki zajmująca się przetwarzaniem informacji - w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje. Pierwotnie dziedzina matematyki, w ciągu ostatnich kilkudziesięciu lat stała się osobną dyscypliną wiedzy. Dyscyplina, która tworzy podstawy naukowe zagadnień: Architektura komputerów Przetwarzanie informacji INFORMATYKA Programowanie komputerów Algorytmy...... Sieci komputerowe 2
Organizacje informatyków ACM - Association for Computing Machinery (Stowarzyszenie Sprzętu Komputerowego), organizacja grupująca profesjonalistów informatycznych. Założona w 1947 roku na Uniwersytecie Columbia w Nowym Jorku. Liczy ok. 70.000 członków. Zajmuje się wszechstronną działalnością na rzecz rozwoju informatyki, m.in. wspiera rozwój nauk informatycznych i techniki komputerowych, organizuje światowe konferencje. Znana także z przyznawania od 1966 r. dorocznych nagród Turinga (100 tys. USD) za wybitne osiągnięcia w dziedzinie informatyki. Nagroda jest traktowana jako Nobel branży komputerowej. Organizacje informatyków IEEE (Institute of Electrical and Electronics Engineers - Instytut Inżynierów Elektryków i Elektroników). największe stowarzyszenie zawodowe na świecie, organizacja typu non-profit skupiająca profesjonalistów. Jednym z podstawowych jej zadań jest ustalanie standardów konstrukcji, pomiarów itp. dla urządzeń elektronicznych, w tym standardów dla urządzeń i formatów komputerowych. organizacja powstała w 1963 r. ASIS - American Society for Information Science, (Stowarzyszenie nauk informacyjnych), skupia specjalistów informacji profesjonalnej, poszukuje nowych teorii, technik i technologii zdobywania informacji. 3
Organizacje informatyków PIIiT - Polska Izba Informatyki i Telekomunikacji organizacja samorządu gospodarczego, istnieje od 1993 roku. zrzesza, na zasadzie dobrowolności, podmioty gospodarcze prowadzące działalność w przemyśle teleinformatycznym telekomunikacji i informatyki. do Izby należy ponad 150 firm. PTI Polskie Towarzystwo Informatyczne założone w 1981 r., organizacja non-profit, dążąca do udoskonalania oraz promowania wysokiej jakości standardów w zawodzie informatyka. Jednostki informacji Najmniejszą jednostką informacji jest 1 bit. Bit przyjmuje wartość 0 lub 1: (2 znaki) 1 bajt (ang. byte) = 8 bitów 1 słowo (ang. word) = 2 bajty (16 bitów) 1 dwusłowo = 4 bajty (32 bity) 2 bity: 00, 01, 10, 11 (rozróżniają 4 znaki) 3 bity: 000, 001,..., 111 (rozróżniają 8 znaków) 4 bity: 0000,..., 1111 (rozróżniają 16 znaków) 8 bitów pozwala odróżnić 256 znaków (2 8 ) 4
Jednostki informacji 1 kbajt [KB] = 1024 bajty = 2 10 bajta 1 megabajt [MB] = 1024 KB = 2 20 bajtów 1 gigabajt [GB] = 1024 MB = 2 30 bajtów 1 terabajt [TB] = 1024 GB = 2 40 bajtów 1 petabajt [PB] = 1024 TB = 2 50 bajtów B i b Dwie ważne literki B=bajty, KB=kilobajty, MB=megabajty, GB=gigabajty b=bity, Kb=kilobity, Mb-megabity... Reprezentacja informacji w komputerze Pozycyjne i niepozycyjne systemy liczenia zapis niepozycyjny (liczby rzymskie) zapis pozycyjny - o znaczeniu cyfry w zapisie liczby świadczy jej pozycja Pozycyjne systemy liczenia system dziesiętny system dwójkowy system ósemkowy system szesnastkowy 5
Cechy systemu pozycyjnego Stosuje się ograniczoną liczbę cyfr, które posiadają kolejne wartości 0,1,2,... Pomimo tego, system pozycyjny nie jest w żaden sposób ograniczony co do wielkości zapisywanych liczb. Każdy system pozycyjny ma przypisaną pewną wartość charakterystyczną, którą nazywamy podstawą systemu. Liczba cyfr jest równa wartości podstawy (np. w systemie dwójkowym są dwie cyfry {0, 1}. Cechy systemu pozycyjnego Wartość cyfry w zapisie zależy od jej pozycji, stąd pochodzi nazwa "system pozycyjny". Każda pozycja ma przypisaną wagę. Wagi pozycji są równe kolejnym potęgom podstawy systemu liczonym od strony prawej. Wartość liczby w zapisie pozycyjnym obliczamy jako sumę iloczynów cyfr przez wagi swoich pozycji. 6
System pozycyjny Rozważmy pewien system pozycyjny o dowolnej podstawie p, p > 1. W systemie tym mamy p cyfr, które oznaczymy literką c. Zapiszmy pewną liczbę za pomocą n cyfr: c n-1 c n-2...c 2 c 1 c 0. waga pozycji p n-1 p n-2...p 2 p 1 p 0 cyfra c n-1 c n-2...c 2 c 1 c 0 = c 0 p 0 +c 1 p 1 +c 2 p 2 +...+c n-2 p n-2 +c n-1 p n-1 c n 1 cn 2... c2c1c0 = n 1 i= 0 c i p i System dwójkowy p = 2, zbiór cyfr c - {0,1} c Wartość liczby całkowitej w zapisie dwójkowym obliczamy według wzoru podstawowego: n 1 c n 2... c c 1 0 = c = 0 n 1 i= 0 2 0 c 2 i + c i 1 2 1 +... + c n 2 2 n 2 + c n 1 2 n 1 n liczba cyfr, które w systemie dwójkowym nazywamy bitami = 7
System dwójkowy - przykład 1011 = 0 1 2 3 ( 2) = 1 2 + 1 2 + 0 2 + 1 2 11(10) 8 4 2 1 2 3 2 2 2 1 2 0 1 0 1 1 Waga pozycji Cyfra Liczenie i dodawanie 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Klucz do sukcesu! 1 1 1 0 0 1 1 + 0 1 0 1 1 0 0 0 1 1 0 0 1 1 + 0 0 1 1 0 1 1 0 8
L. dziesiętne - > L. dwójkowe 76 (10) =? (2) 76 : 2 = 38, reszta 0 38 : 2 = 19, reszta 0 19 : 2 = 9, reszta 1 9 : 2 = 4, reszta 1 4 : 2 = 2, reszta 0 2 : 2 = 1, reszta 0 1 : 2 = 0, reszta 1 0 : 2 = 0, reszta 0 0 1 0 0 1 1 0 0 System szesnastkowy p = 16, c - {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} hex bin hex bin 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 10,11,12,13,14,15 (dziesiętnie) Przykład: 7 (16) = 0111 (2) A (16) = 1010 (2) 9
System szesnastkowy 1101 0111 1011 0101 0101 1101 (2) =? (16) 1101 D 0111 7 1011 B 0101 5 0101 5 1101 D 110101111011010101011101 (2) = D7B55D (16) A68F27 (16) =? (2) A 1010 6 0110 8 1000 F 1111 2 0010 7 0111 A68F27 (16) = 101001101000111100100111 (2) L.dziesiętne -> L.szesnastkowe 48 (10) =? (16) 48 : 16 = 3, reszta 0 3 : 16 = 0, reszta 3 15268 (10) =? (16) 3 0 15268 : 16 = 954, reszta 4 954 : 16 = 59, reszta 10 (A) 59 : 16 = 3, reszta 11 (B) 3 : 16 = 0, reszta 3 3 B A 4 10
Liczby ze znakiem i bez znaku 9 (10) = 1001 (2) Przetwarzanie w komputerze oparte na bitach 0 lub 1-10 (10) =? (2) W systemie dziesiętnym możemy posługiwać się znakiem + lub - Liczby ze znakiem i bez znaku Liczby dwójkowe mogą mieć znak lub nie. Wartość ze znakiem jest używana, jeśli operacja matematyczna jest wykonywana na liczbie ujemnej. Decyduje najwyższy bit: wartość 1 oznacza liczbę ujemną wartość 0 oznacza liczbę dodatnią 11
Liczby ze znakiem i bez znaku Dwa główne sposoby kodowania liczb ze znakiem: kod ZNAK-MODUŁ kod Uzupełnienia dwójkowego (U2) Uzupełnienie dwójkowe Należy rozpatrzyć dwa przypadki: 1. Liczba jest dodatnia - znajdujemy jej przedstawienie binarne i uzupełniamy zerami do przyjętego formatu. Przykład: Zapisać wartość 3 (10) w kodzie U2 format 4-bitowy: 3 (10) = 11 (2) Ponieważ format ma 4 bity, to dopisujemy na początku dwie cyfry 0 i otrzymujemy liczbę dodatnią w kodzie U2: 3 (10) = 0011 (U2) 12
Uzupełnienie dwójkowe 2. Liczba jest ujemna (sposób I). W tym przypadku bit znaku (pozycja o wadze -2 n-1 ) musi mieć wartość 1. Należy znaleźć taką wartość, która dodana do wagi bitu znaku da nam liczbę kodowaną. Wartość tę kodujemy na pozostałych bitach. Przykład: Zapisać wartość -3 (10) w 4-bitowym kodzie U2: Bit znaku ma wartość -2 3 = -8, czyli aby otrzymać -3 należy dodać liczbę 5, którą kodujemy na pozostałych bitach: -8 + 5 = -3 1 1 0 1 (U2) = -3 (10) Uzupełnienie dwójkowe 2. Liczba jest ujemna (sposób II). Można również znaleźć przedstawienie modułu tej liczby, a następnie wyliczyć wartość przeciwną w kodzie U2: Zamienić wszystkie bity liczby na przeciwne, tzn. 1 na 0 i 0 na 1 Do tak otrzymanej liczby dodać wartość 1 Przykład: Zapisać wartość -3 (10) w 4-bitowym kodzie U2: 3 (10) = 11 (2) Uzupełniamy do 4 bitów: 3 (10) = 0011 (U2) Zamieniamy bity: 1100 (U2) + 1 Otrzymujemy: 1101 (U2) = -3 (10) 13
Przykład Konwersja liczby dwójkowej ze znakiem na liczbę dziesiętną: 11111111 (2) Odwrócenie bitów: 00000000 Ale bit znaku ustawiony na 1, czyli liczba ujemna: -1 (10) + 1 00000001 Wartość bez znaku = 1 (10) 11111111 (2) = -1 (10) Przykład Konwersja liczby dwójkowej ze znakiem na liczbę dziesiętną: 11101100 (2) Odwrócenie bitów: 00010011 + 1 Ale bit znaku ustawiony na 1, czyli liczba ujemna: -20 (10) 16 8 4 2 1 00010100 Wartość bez znaku = 20 (10) 11101100 (2) = -20 (10) 14
Przykład Konwersja liczby szesnastkowej (9Bh = 9B (16) ) ze znakiem na liczbę dziesiętną: 9Bh Odwrócenie bitów: Ale bit znaku ustawiony na 1, czyli liczba ujemna: -101 (10) 10011011 (2) 01100100 = 64h + 1 64 32 16 8 4 2 1 01100101 = 65h Wartość bez znaku = 101 (10) Przykład Uzupełnienie dwójkowe liczby szesnastkowej (9Bh): Uzupełnienie jedynkowe: 15 9 = 6 15 B = 4 Otrzymaliśmy: 64h Uzupełnienie dwójkowe, czyli dodajemy 1 do wyniku: 64h + 1= 65h 15
Przykład Uzupełnienie dwójkowe liczby szesnastkowej (6A295CD4h): Uzupełnienie jedynkowe: 15 6 = 9... 15 4 = B Otrzymaliśmy: 95D6A32Bh Uzupełnienie dwójkowe, czyli dodajemy 1 do wyniku: 95D6A32Bh + 1 = 95D6A32Ch Odejmowanie liczb dwójkowych Liczbę odejmowaną należy przekonwertować na postać uzupełnienia dwójkowego. Przykład: 00011100b 00010000b =?b 28 (10) 00011100 + -16 (10) + 11110000 12 (10) 00001100 Uzupełnienie dwójkowe W systemie dziesiętnym: 28 16 = 12 16
Odejmowanie liczb szesnastkowych bez konieczności przekształcania na format uzupełnienia dwójkowego Przykład: -1 3 E 6 2h - 0 0 0 9h 3 E 5 9h W systemie szesnastkowym pożyczka oznacza użycie wartości 16! Kod BCD ang. Binary Coded Decimal (Liczby dziesiętne zakodowane binarnie). W systemie tym nie koduje się wartości binarnej liczby, tylko jej poszczególne cyfry dziesiętne. Każdą cyfrę dziesiętną przedstawia się za pomocą 4 bitów według tabeli kodu BCD. cyfra BCD 0 0000 (2) 1 0001 (2) 2 0010 (2) 3 0011 (2) 4 0100 (2) 5 0101 (2) 6 0110 (2) 7 0111 (2) 8 1000 (2) 9 1001 (2) 17
Przykład: Kod BCD 9234 (10) = 1001 0010 0011 0100 = 1001001000110100 (BCD) 10000110000001110001 (BCD) = =1000 0110 0000 0111 0001 = 86071 (10) Liczba zapisana w kodzie BCD po zamianie na system szesnastkowy da się bezpośrednio odczytać jako liczba dziesiętna. Jest to bardzo miła cecha liczb BCD, z której często korzystają programiści pracujący z takimi liczbami. Reprezentacja informacji w komputerze ASCII (American Standard Code for Information Interchange) kod przyporządkowujący liczby z zakresu 0-127 literom alfabetu angielskiego, cyfrom, znakom przestankowym, symbolom i poleceniom sterującym. Z racji tego, że kod ASCII jest 7-bitowy, a większość komputerów operuje na 8-bitowych bajtach, powstało wiele różnych rozszerzeń kodu ASCII zagospodarowujących ósmy bit (np. norma ISO 8859). 18
ASCII Dec Hex Znak Dec Hex Znak Dec Hex Znak 32 20 Spacja 64 40 @ 96 60 ` 33 21! 65 41 A 97 61 a 34 22 " 66 42 B 98 62 b 35 23 # 67 43 C 99 63 c 36 24 $ 68 44 D 100 64 d 37 25 % 69 45 E 101 65 e 38 26 & 70 46 F 102 66 f 39 27 ' 71 47 G 103 67 g 40 28 ( 72 48 H 104 68 h 41 29 ) 73 49 I 105 69 i Reprezentacja informacji w komputerze Unicode zestaw znaków mający w zamierzeniu obejmować wszystkie pisma używane na świecie. Definiują go dwa standardy: Unicode oraz ISO 10646. Znaki obu standardów są identyczne. Różnią się m.in. określeniem sposobu składu. Standard Unicode nie obejmuje sposobów kodowania znaków. Jest kilka metod kodowania: UCS-4 (Universal Character Set) UTF-8 (Unicode Transformation Format) 19
Dziękuję za uwagę 20