Wstęp do Informatyki Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery
Pozycyjne systemy liczbowe Dziesiętny system liczbowy (o podstawie 10): Liczba naturalna n-cyfrowa: X=c n-1 *10 n-1 +c n-2 *10 n-2 + +c 1 *10 1 +c 0 *10 0 Przykład: 7625=7*10 3 +6*10 2 +2*10 1 +5*10 0 Dwójkowy (binarny) system liczbowy (o podstawie 2): Liczba naturalna n-cyfrowa (n-bitowa): X=b n-1 *2 n-1 +b n-2 *2 n-2 + +b 1 *2 1 +b 0 *2 0 Przykład: 1101(bin)=1*2 3 +1*2 2 +0*2 1 +1*2 0 =13(dec) 2
Reprezentacja liczb w komputerze Liczby w komputerach reprezentuje się za pomocą ciągów symboli zero-jedynkowych. Ograniczenie zbioru symboli do dwóch wynika z łatwości realizacji dwóch wartości napięcia na wyjściu układów cyfrowych: - 0 napięcie bliskie potencjałowi masy - 1 napięcie bliskie napięciu zasilania 3
Zbiory liczbowe w matematyce Liczby zespolone Liczby rzeczywiste Liczby wymierne Liczby całkowite Liczby naturalne 4
Reprezentacja liczb w komputerze Czy możliwe jest zapisanie (pamiętanie) dowolnej liczby w komputerze? Nawet zbiór liczb naturalnych jest zbiorem nieskończonym. Pamiętanie dowolnie dużej liczby naturalnej wymagałoby nieskończenie dużej pamięci. Można przechowywać liczby naturalne z zakresu zależnego od przeznaczonej do tego liczby bitów. 5
Reprezentacja liczb naturalnych - kod NBC Dec NBC (ang: Natural Binary Code) naturalny kod binarny: x=b n-1 *2 n-1 +b n-2 *2 n-2 + +b 1 *2 1 +b 0 *2 0 Brak możliwości zapisania znaku i ułamków Tabela przedstawia przykład notacji NBC dla liczb czterobitowych 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bin (NBC) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 6
Zakresy liczb naturalnych w kodzie NBC Zakres liczb naturalnych, możliwych do reprezentowania n bitami: x min =0*2 n-1 +0*2 n-2 + +0*2 1 +0*2 0 =0 x max =1*2 n-1 +1*2 n-2 + +1*2 1 +1*2 0 =2 n -1 Przykłady: n=4: <0, 15> n=8: <0, 255> n=16: <0, 65 535> n=32: <0, 4 294 967 295> 7
Arytmetyka na liczbach naturalnych w kodzie NBC Dodawanie: 0 0 1 1 +0 +1 +0 +1 --- --- --- --- 0 1 1 10 Przykład: Dec: Bin: 5 101 +7 +111 --- ---- 12 1100 Mnożenie pojedynczych cyfr: 0x0=0 0x1=0 1x0=0 1x1=1 Mnożenie liczb wielocyfrowych - przykład: Dec: Bin: 011 3x5 x101 ---- 011 000 011 -- ----- 15 01111 8
Możliwości reprezentacji liczb całkowitych, ujemnych Kod znak-moduł: b n-1 znak: 0 oznacza +, 1 oznacza - b n-2 b 0 moduł w notacji NBC x=-b n-1 *(b n-2 *2 n-2 + +b 1 *2 1 +b 0 *2 0 ) U2 kod uzupełnień do dwóch: x=-b n-1 *2 n-1 +b n-2 *2 n-2 + +b 1 *2 1 +b 0 *2 0 9
Reprezentacja liczb całkowitych (ze znakiem) - kod U2 Dec Bin (U2) U2 kod uzupełnień do dwóch: x=-b n-1 *2 n-1 +b n-2 *2 n-2 + +b 1 *2 1 +b 0 *2 0 Brak możliwości zapisania ułamków Tabela przedstawia przykład notacji U2 dla liczb czterobitowych 0 1 2 3 4 5 6 7-8 -7-6 -5-4 -3-2 -1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10
Zakresy liczb całkowitych w kodzie U2 Zakres liczb naturalnych, możliwych do reprezentowania n bitami: x min =-1*2 n-1 +0*2 n-2 + +0*2 1 +0*2 0 =-2 n-1 x max =1*2 n-1 +1*2 n-2 + +1*2 1 +1*2 0 =2 n-1-1 Przykłady: n=4: <-8, 7> n=8: <-128, 127> n=16: <-32 768, 32 767> n=32: <-2 147 483 648, 2 147 483 647 > 11
Arytmetyka na liczbach w kodzie U2 Operacje dodawania i odejmowania dla liczb w kodzie NBC i U2 są realizowane tak samo (wykorzystuje się tę samą jednostkę ALU). Różna jest natomiast interpretacja wartości argumentów i wyniku obliczeń. Przykład dodawania liczb 4-bitowych: Przykład odejmowania liczb 4-bitowych: Kod binarny Wartość dla NBC Wartość dla U2 Kod binarny Wartość dla NBC Wartość dla U2 składnik 1. 1001 9-7 odjemna 1100 12-4 składnik 2. 0011 3 3 odjemnik 0011 3 3 suma 1100 12-4 różnica 1001 9-7 12
Ograniczenia arytmetyki stałoprzecinkowej Brak możliwości działań na ułamkach Przekraczanie zakresu liczb w wyniku mnożenia Przekraczanie zakresu liczb w wyniku dodawania 13
Przepełnienie podczas mnożenia Przykłady dla liczb 4-bitowych: 0011x1000=11000 (3x8=24) 1111x1111=11100001 (15x15=225) Wyniki nie mieszczą się w słowie 4-bitowym W najgorszym przypadku potrzebne jest 8 bitów. 14
Przepełnienie podczas dodawania Przykłady dla liczb 4-bitowych: 1000+1000=10000 (8+8=16) 1111+1111=11110 (15+15=30) Wyniki nie mieszczą się w słowie 4-bitowym W najgorszym przypadku potrzebne jest 5 bitów. 15
Rozwiązania problemu przekroczenia zakresu liczb Użycie podwójnej precyzji zapisu wyniku działania Użycie formatu ułamkowego Zastosowanie arytmetyki zmiennoprzecinkowej 16
Zastosowanie podwójnej precyzji zapisu wyników działań arytmetycznych Przykład: wynik mnożenia liczb 4-bitowych zapamiętywany 8 bitach. 1 1 0 1 x 1 0 1 1 1 0 0 0 1 1 1 1 Problemy: Potrzeba większej pamięci do przechowywania danych. Wyniki muszą być skalowane aby móc ich użyć do dalszych obliczeń 17
Arytmetyka zmiennoprzecinkowa - idea x= S x M x 2 E S znak ( 1 dla liczb dodatnich, -1 dla liczb ujemnych) M mantysa (ciąg bitów kodujący znormalizowany ułamek) E cecha (wykładnik) 18
Arytmetyka zmiennoprzecinkowa Format liczb zmiennoprzecinkowych pojedynczej precyzji (standard IEEE-754 single) s = bit znaku e = ekse ksponent (8-bit bitowy korygowany o -127) m = mantysa (23-bit bitowy normalizowany ułamek) wartość = (-1)( s * (1.m) * 2 (e (e-127) 19
Arytmetyka zmiennoprzecinkowa Zakres wartości dodatnich liczb zmiennoprzecinkowych standardu IEEE-754 single 1.5 10-45..3.4 10 38 Wartość zerowa wymaga odmiennego zakodowania Dokładność reprezentacji maleje z rosnącym modułem 0 x 20
Działania na liczbach zmiennoprzecinkowych Dodawanie: x 1 +x 2 =(M 1 + M 2 x 2 E2-E1 ) x 2 E1 Odejmowanie: x 1 -x 2 =(M 1 - M 2 x 2 E2-E1 ) x 2 E1 Mnożenie: x 1 x x 2 = (S 1 x S 2 )(M 1 x M 2 ) x 2 E1+E2 Dzielenie: x 1 / x 2 = (S 1 x S 2 )(M 1 / M 2 ) x 2 E1-E2 21
Typy danych liczbowych w komputerze Typy danych Stałoprzecinkowe bez znaku Stałoprzecinkowe ze znakiem Zmiennoprzecinkowe Nazwy unsigned int, byte, word itd. int, integer, long float, real, double Liczby ze zbioru liczb: naturalnych całkowitych wymiernych 22
Przechowywanie danych w komputerze Dane przetwarzane znajdują się w pamięci operacyjnej Zachodzi potrzeba przechowywania danych nie tylko w pamięci operacyjnej, ale też w nieulotnej pamięci masowej. Dane w takiej pamięci nie znikają po wyłączeniu zasilania. 23
Pamięci masowe Historia rozwoju nośników pamięci masowych: Karta perforowana Taśma magnetyczna Taśma perforowana Źródło: http://pclab.pl/ Dysk elastyczny (dyskietka) 24
Dysk sztywny (twardy) Źródło: http://wwwnt.if.pwr.wroc.pl 25
Cechy pamięci masowych Budowa pamięci masowych ogranicza swobodę dostępu do nich. Dane mogą być odczytywane porcjami (blokami), w kolejności zgodnej z ich zapisem. Istnieje potrzeba jednolitego sposobu reprezentacji bloków danych dla różnorodnych pamięci masowych. 26
Plik jak abstrakcja zbiorów danych Aby ujednolicić dostęp do danych w różnych pamięciach masowych wprowadzono pojęcie pliku danych. Plik jest abstrakcyjną strukturą, ukrywającą sposób zapisu i rozmieszczenie danych w pamięci. Plik jest identyfikowany za pomocą nazwy i położenia w systemie plików danego nośnika. Zapis danych do pliku i odczyt odbywa się zazwyczaj w tej samej kolejności (od początku do końca pliku). 27
Cechy pliku Plik posiada nazwę i opcjonalne rozszerzenie. Plik ma określoną wielkość. Plik może zawierać różnorodne dane: tekst, kod programu, dane binarne, obrazowe itd. Plik może być katalogiem (folderem) gromadzącym informację o plikach w nim zawartych. Plik może być dowiązaniem symbolicznym do innego pliku (skrótem). 28
Typy plików Przeznaczenie pliku wyznacza jego typ Typ pliku może być zasygnalizowany jego rozszerzeniem (ciąg znaków w nazwie po kropce), np: nazwa.exe, *.com, *.bat plik wykonywalny nazwa.txt plik tekstowy nazwa.mp3, *.wav plik dźwiękowy nazwa.jpg, *.bmp - obraz 29
Atrybuty pliku DOS: Tylko do odczytu - chroni pliki przed zmianą lub przeniesieniem Ukryty - ukrywa pliki w widoku Systemowy - plik wykorzystywany przez system operacyjny Archiwalny - plik archiwalny Katalog - plik jest katalogiem Volume - plik jest etykietą wolumenu Dodatko w systemie Windows stosuje się atrybuty: Szyfrowany, Skompresowany, Offline, Tymczasowy W systemach Unixowych definiuje się dodatkowo prawa dostępu dla różnych użytkowników. 30
Organizacja plików na nośniku Pliki umieszcza się w katalogach (folderach) Zazwyczaj dla danego dysku logicznego definiuje się katalog główny (root) np. c:, d: Każdy katalog może zawierać oprócz plików z danymi również podkatalogi System katalogów stanowi swoiste drzewo (rysunek) 31
Organizacja plików na nośniku Umiejscowienie pliku na nośniku określa tzw. ścieżka dostępu, np: C:\programy\najlepsze\przyklad.exe D:\zdjecia\portret_zony.jpg W przeglądaniu i zarządzaniu plikami pomagają programy graficznej wizualizacji nazywane managerami plików 32
Pliki Kopiowanie Zmiana nazwy Przenoszenie Kasowanie Operacje na plikach Katalogi Tworzenie Kopiowanie (może być z podkatalogami) Zmiana nazwy Otwieranie Przenoszenie w strukturze katalogów Kasowanie 33
System plików System plików - metoda przechowywania plików na nośniku (fragmentacja pliku), zarządzania plikami i informacjami o tych plikach. Popularne systemy plików: FAT (File Allocation Table - tablica alokacji plików NTFS - system plików z księgowaniem pod Windows NT i nowszymi wersjami UFS - Unix File System - podstawowy system plików Solarisa 34