Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Reprezentacja danych w komputerze

Podobne prezentacje


Prezentacja na temat: "Reprezentacja danych w komputerze"— Zapis prezentacji:

1 Reprezentacja danych w komputerze
Zajęcia 2

2 Informacja W informatyce pojęcie informacji (danych) jest niedefiniowalne, tak jak w matematyce pojęcie zbioru. Można natomiast powiedzieć o jednostkach informacji. I tak podstawową jednostką informacji w informatyce jest bit (b). Bit to jednostka informacji mogąca przyjąć (zakodować) jeden z dwóch stanów, np. prawdę lub fałsz, czarny lub biały, ale w informatyce najczęściej utożsamiamy tą informację z cyframi 0 lub 1. Jednostka ta w informatyce jest bardzo przydatna gdyż da się ją ściśle powiązać z napięciem wytworzonym między dwoma ośrodkami (0 – napięcia brak, 1 – napięcie jest). Ponieważ za pomocą jednostki 1 bit można zapisać tylko dwie różne informacje (czyli bardzo mało informacji), to można by wziąć np. 2 bity. No właśnie, ile różnych informacji można zapisać używając dwóch bitów? 0,0 – pierwsza informacja (np. drzewo) 0,1 – druga informacja (np. samochód) 1,0 – trzecia informacja (np. ptak) 1,1 – czwarta informacja (np. kartka) A zatem cztery różne informacje. Widać jednak, że i to za mało. Powstały więc jednostki wyższych rzędów. 1 Bajt (1 B) = 8 bitów = 2^8 = 256 różnych informacji.

3 Informacja, cd. Widać już, że 1 Bajt pozwala zakodować, np. wszystkie cyfry 0,…,9, wszystkie małe litery alfabetu a,…,z, duże litery alfabetu A,…,Z, znaki -,=,.,/,\,?,… chyba właściwie wszystkie znaki dostępne na klawiaturze. Można by w skrócie tak to przedstawić, a wszystkie wymienione powyżej znaki zaliczyć do słynnych znaków ASCII (poniżej kod dziesiętny, dwójkowy znaków ASCII o kodzie od 0-127)

4 Konwerter Poniżej prosty program w C++ pozwalający uzyskać znaki ASCII i ich odpowiednik dwójkowy i dziesiętny z poprzedniego slajdu #include <iostream> using namespace std; int main() { cout << "decimal: binary: ASCII: " << endl; for (int n=0; n<=127; n++) cout << " " << n << " "; for (int i=7; i>=0; i--) int bit = ((n >> i) & 1); cout << bit; } cout << " " << char(n) <<endl; if ((n == 40) || (n == 80)) system("PAUSE"); return 0;

5 Informacja, cd. Zauważmy, że teraz bez problemu zakodujemy wyraz: Ala, to po prostu ciąg znaków: | | Ze zdaniem „Ala ma kota” i z kodowaniem dłuższych zdań, czy wręcz całych książek, możemy mieć już problemy, choć komputer oczywiście nie. I chodzi tu oczywiście o pracochłonność zadania. Zauważmy jednak, że zakodowanie wyrazu Ala nie dwójkowo (używając zer i jedynek), a dziesiętnie (używając cyfr 0,…,9), to już prostsze zadanie dla nas. Ala to samo co: 65|108|97. Widzimy zatem, że 65|108|97= | | , Przy czy obie te liczby zapisane są w różnych systemach, tj. pierwsza w dziesiętnym (dziesiątkowym), gdzie używamy cyfr 0,1,…,9 a druga w dwójkowym, gdzie używamy cyfr 0,1. Widzimy więc, że pożądaną umiejętnością jest przeliczanie liczb z jednego systemu na drugi. Ogólnie jeśli mamy do czynienia z systemem pozycyjnym o podstawie p, to n-cyfrowa liczba an-1 an-2…a1 a0 ma rozwinięcie: an-1 an-2…a1 a0= an-1*pn-1 +an-2*pn-2+ …+ a1*p1 + a0*p0, gdzie an-1, an-2 , … , a1 , a0 są cyframi danej liczby. Np. Jeśli p=2, to mamy do czynienia z systemem dwójkowym w którym używamy cyfr 0 i 1 i dla przykładu 1010=1*23+0*22+1*21+0*20. Jeśli p=10, to mamy do czynienia z systemem dziesiętnym w którym używamy cyfr 0,1,…,9 i dla przykładu 123=1*102+2*101+3*100. Dla odróżnienia liczb zapisywanych w danym systemie będziemy często podstawę tego systemu pisali w dolnym prawym rogu liczby, tj (liczba jeden zero jeden zero w systemie dwójkowym), (liczba tysiąc dziesięć w systemie dziesiętnym). Uwaga! Potęgę będziemy od tej pory oznaczali symbolem ^ tak jak się to przyjęło robić w programach matematycznych: Derive, Mathematica, itp.

6 Zamiana systemów dwójkowy <--> dziesiętny
Weźmy liczbę w systemie dwójkowym. Mamy: =1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=5010 Weźmy z kolei liczbę 5010 w systemie dziesiętnym. 50 : 2 = 25 i reszta 0 25 : 2 = 12 i reszta 1 12 : 2 = 6 i reszta 0 6 : 2 = 3 i reszta 0 3 : 2 = 1 i reszta 1 1 : 2 = 0 i reszta 1 i koniec. Teraz czytając od końca (tj. z dołu do góry) otrzymujemy: Zadanie 1 (a) Zamień liczby i na odpowiadające im liczby w systemie dziesiętnym. (b) Zamień liczby i na odpowiadające im liczby w systemie dwójkowym.

7 Zamiana systemów szesnastkowy <--> dziesiętny
System szesnastkowy, to również bardzo popularny system kodowania znaków w informatyce (np. przy kodowaniu kolorów w systemie RGB). W tym systemie mamy do dyspozycji znaki: 0,1,…,9 oraz dodatkowo znaki A,B,C,D,E,F odpowiadające w systemie dziesiętnym liczbom 10,11,12,13,14,15. Weźmy liczbę 12AB16 Mamy: 12AB16 =1*16^3+2*16^2+10*16^1+11*16^0= Weźmy z kolei liczbę w systemie szesnastkowym : 16 = 298 i reszta : 16 = 18 i reszta : 16 = 1 i reszta 2 1 : 16 = 0 i reszta 1 i koniec. Teraz czytając od końca (tj. z dołu do góry) otrzymujemy: 12AB16 Zadanie 2 (a) Zamień liczby AB116 i 123AA16 na odpowiadające im liczby w systemie dziesiętnym. (b) Zamień liczby i na odpowiadające im liczby w systemie szesnastkowym.

8 Dodawanie i Mnożenie System dwójkowy i szesnastkowy
Zadanie 3 (a) Dodaj i pomnóż pisemnie liczby: i (b) Dodaj i pomnóż pisemnie liczby: 12A16 i A1216

9 Kodowanie pozostałych znaków ASCII
Patrząc na tablicę kodów ASCII zaprezentowaną na trzecim slajdzie widzimy, że nie ma tam kodów binarnych wielu znaków, np. ą, ć, Ą, Ę, ä, ö, i np. wszystkich znaków alfabetu chińskiego. Problem w tym, że tablica ASCII dla każdego z krajów jest wyposażona w dodatkowe znaki charakterystyczne dla danego państwa i obejmujące kody ASCII o kodzie dziesiętny powyżej numeru 127. I tak dla przykładu dla Polski jest to Latin1 i ma postać: Tak naprawdę w celu ujednolicenia tablicy wszystkich znaków stosowanych przez ludzi we wszystkich krajach wymyślono Unicode. Potrzeba na to kodowanie jednak 2 Bajtów.

10 Kodowanie biało-czarnego obrazu
Obraz normalny: Sposób zakodowania: Obraz powiększony do kodowania: Zakodowanie obrazu: źródło:

11 Kodowanie kolorowego obrazu
Obraz normalny: Sposób kodowania: Obraz powiększony do kodowania: Zakodowanie obrazu: źródło:

12 Kodowanie tekstu Zadanie 4 Załóżmy, że symbole alfabetu polskiego kodowane są według reguły: Zakoduj zdanie: „ALA MA KOTA”. źródło:

13 Jednostki informacji Zauważmy, że tak naprawdę jednostka 1B jest bardzo mała i można nią zakodować 256 różnych informacji. A co jeśli chcemy zakodować całą książkę informacji. Trzeba zwiększyć jednostki. I tak, mamy następującą tabelę jednostek i ich przeliczania: źródło: Zadanie 5 128 TB = ? MB = ? B 2 Mb = ? B 10 MB = ? GB

14 Praca domowa: Dowiedź się w jaki sposób przelicza się liczby pomiędzy systemami dwójkowym i szesnastkowym. Dowiedź się jak można zakodować dźwięk. Dowiedź się czym dokładnie jest Unicode i UTF i czym się od siebie różnią?


Pobierz ppt "Reprezentacja danych w komputerze"

Podobne prezentacje


Reklamy Google