konwersja bin iso
Transkrypt
konwersja bin iso
2012-11-24 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 2012-11-24 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 Sieci komputerowe Algorytmy ... ... 2 2012-11-24 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 2012-11-24 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 (28) 4 2012-11-24 Jednostki informacji 1 kbajt [KB] = 1024 bajty 1 megabajt [MB] = 1024 KB 1 gigabajt [GB] = 1024 MB 1 terabajt [TB] = 1024 GB 1 petabajt [PB] = 1024 TB Bib = 210 bajta = 220 bajtów = 230 bajtów = 240 bajtów = 250 bajtów 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 2012-11-24 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 2012-11-24 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: cn-1cn-2...c2c1c0. waga pozycji pn-1pn-2...p2p1p0 cyfra cn-1cn-2...c2c1c0= c0p0+c1p1+c2p2+...+cn-2pn-2+cn-1pn-1 n −1 cn −1cn − 2 ...c2 c1c0 = ∑ ci p i i =0 System dwójkowy p = 2, zbiór cyfr c - {0,1} Wartość liczby całkowitej w zapisie dwójkowym obliczamy według wzoru podstawowego: cn −1cn − 2 ...c1c0 = c0 ⋅ 20 + c1 ⋅ 21 + ... + cn − 2 ⋅ 2 n − 2 + cn −1 ⋅ 2 n −1 = n −1 = ∑ ci 2i i =0 n – liczba cyfr, które w systemie dwójkowym nazywamy bitami 7 2012-11-24 System dwójkowy - przykład 1011( 2 ) = 1 ⋅ 2 0 + 1 ⋅ 21 + 0 ⋅ 2 2 + 1 ⋅ 23 = 11(10) Waga pozycji 8 4 2 1 23 22 21 20 1 0 1 1 Cyfra Liczenie i dodawanie 0+0= 0 0+1= 1 1+0= 1 1 + 1 = 10 Klucz do sukcesu! 1 1 1 0011 +0101 1000 1 1 0011 +0011 0110 8 2012-11-24 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 0 1 2 3 4 5 6 7 bin hex bin 0000 8 1000 0001 9 1001 0010 A 1010 0011 B 1011 0100 C 1100 0101 D 1101 0110 E 1110 0111 F 1111 10,11,12,13,14,15 (dziesiętnie) Przykład: 7(16) = 0111(2) A(16) = 1010(2) 9 2012-11-24 System szesnastkowy 1101 0111 1011 0101 0101 1101(2)= ?(16) 1101 0111 1011 0101 0101 1101 ↓ ↓ ↓ ↓ ↓ ↓ D 7 B 5 5 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 2012-11-24 Liczby ze znakiem i bez znaku Przetwarzanie w komputerze oparte na bitach „0” lub „1” 9(10) = 1001(2) -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 2012-11-24 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 2012-11-24 Uzupełnienie dwójkowe 2. Liczba jest ujemna (sposób I). W tym przypadku bit znaku (pozycja o wadze -2n-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ść -23 = -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 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: 2. • • 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 2012-11-24 Przykład Konwersja liczby dwójkowej ze znakiem na liczbę dziesiętną: 11111111(2) Odwrócenie bitów: 00000000 + 1 00000001 Wartość bez znaku = 1(10) Ale bit znaku ustawiony na 1, czyli liczba ujemna: -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 16 8 4 2 1 00010100 Ale bit znaku ustawiony na 1, czyli liczba ujemna: -20(10) Wartość bez znaku = 20(10) 11101100(2) = -20(10) 14 2012-11-24 Przykład Konwersja liczby szesnastkowej (9Bh = 9B(16)) ze znakiem na liczbę dziesiętną: 9Bh 10011011(2) Odwrócenie bitów: 01100100 = 64h + 1 64 32 16 8 4 2 1 01100101 = 65h Ale bit znaku ustawiony na 1, czyli liczba ujemna: -101(10) 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 2012-11-24 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 W systemie dziesiętnym: 28 – 16 = 12 28(10) 00011100 + -16(10) + 11110000 12(10) 00001100 Uzupełnienie dwójkowe 16 2012-11-24 Odejmowanie liczb szesnastkowych • bez konieczności przekształcania na format uzupełnienia dwójkowego Przykład: -1 3 E 6 2h W systemie szesnastkowym pożyczka oznacza użycie wartości 16! - 0 0 0 9h 3 E 5 9h 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 0 1 2 3 4 5 6 7 8 9 BCD 0000(2) 0001(2) 0010(2) 0011(2) 0100(2) 0101(2) 0110(2) 0111(2) 1000(2) 1001(2) 17 2012-11-24 Kod BCD Przykład: 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 2012-11-24 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 28 ( 72 48 H 104 68 h 29 ) 73 49 I 105 69 i 40 41 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 2012-11-24 Dziękuję za uwagę 20