Reprezentacja danych w komputerze

Slides:



Advertisements
Podobne prezentacje
Jednostki informacji i kodowanie znaków
Advertisements

PRZEDSTAWIANIE INFORMACJI W KOMPUTERZE
Sieci komputerowe Protokół TCP/IP Piotr Górczyński 27/09/2002.
Użytkowanie Sieci Marcin KORZEB WSTI - Użytkowanie Sieci.
dr A Kwiatkowska Instytut Informatyki
Filip Andrzejewski Remigiusz Chiluta
Sprawdzian Zadanie 1: Napisz program obliczający pole i obwód prostokąta. Wymiary pobierz z klawiatury od użytkownika. Zadanie 2: Napisz program sprawdzający,
Reprezentowanie i przetwarzanie informacji przez człowieka i komputer. Patrycja Białek.
Liczby w Komputerze Zajęcia 3.
#include #include main () { cout
dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
Programowanie obiektowe W2
Temat 3: Co to znaczy, że komputer ma pamięć? Czy można ją zmierzyć?
Kod Graya.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
opracowanie: Agata Idczak
Podstawy informatyki (4)
Gdzie co jest? Cz. II. Kubek stoi na lewo od talerzyka. Pod kubkiem stoi filiżanka, a pod talerzykiem szklanka. Dzbanek stoi pomiędzy filiżanką i szklanką.
Zadanie Dev C++.
Przekazywanie argumentów
Pętla do ... While C++ Źródło:
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe
Jednostki w informatyce i system binarny (dwójkowy)
System dwójkowy (binarny)
Informatyka I Wykład 4 Stałe Stałe liczbowe Stałe znakowe Stałe tekstowe Jerzy Kotowski Politechnika Wroclawska var = 5L - 0xA; -5.
Systemy liczbowe.
Programowanie strukturalne i obiektowe
Instrukcja for. Instrukcja warunkowa mgr inż. Agata Pacek.
Podstawowe elementy języka Turbo Pascal.
Systemy Liczenia - I Przez system liczbowy rozumiemy sposób zapisywania i nazywania liczb. Rozróżniamy: pozycyjne systemy liczbowe i addytywne systemy.
Jednostki używane w informatyce
Podstawy informatyki 2013/2014
Programowanie obiektowe 2013/2014
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
Matematyka i system dwójkowy
Systemy operacyjne i sieci komputerowe
Podstawy języka Instrukcje - wprowadzenie
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Programowanie strukturalne i obiektowe C++
1 Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: , WWW: ssamolej.prz-rzeszow.pl INFORMATYKA.
Programowanie strukturalne i obiektowe C++ Przeładowanie operatorów Robert Nowak.
Danuta Stanek KODOWANIE LICZB Systemy liczenia III.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Systemy liczenia IV Kodowanie i kody Danuta Stanek.
Programowanie strukturalne i obiektowe C++ Powtórzenie wiadomości z C++ Robert Nowak.
Jak graficznie przedstawić ułamek?
Zasady arytmetyki dwójkowej
Rodzaje pamięci komputerowej
Pliki tekstowe – odczyt i zapis Zajęcia 11. Zapis do pliku tekstowego Prosty program pokazujący sposób zapisu do pliku tekstowego: // writing on a text.
CZYM JEST KOD BINARNY ?.
K ODY ZMIENNEJ DŁUGOŚCI Alfabet Morsa Kody Huffmana.
INFORMATYKA Zajęcia organizacyjne Arytmetyka komputerowa
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Elementy cyfrowe i układy logiczne
Podstawy Informatyki.
Wstęp do Informatyki - Wykład 6
Gdzie co jest? Cz. II.
Programowanie I Rekurencja.
Adresowanie fizyczne i logiczne w sieci Protokół IPv4
Gdzie co jest? Cz. II.
Gdzie co jest? Cz. II.
Zapis prezentacji:

Reprezentacja danych w komputerze Zajęcia 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.

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)

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;

Informacja, cd. Zauważmy, że teraz bez problemu zakodujemy wyraz: Ala, to po prostu ciąg znaków: 01000001|01101100|01100001. 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= 01000001|01101100|01100001, 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. 10102 (liczba jeden zero jeden zero w systemie dwójkowym), 101010 (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.

Zamiana systemów dwójkowy <--> dziesiętny Weźmy liczbę 1100102 w systemie dwójkowym. Mamy: 1100102=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: 1100102 Zadanie 1 (a) Zamień liczby 111001112 i 01010102 na odpowiadające im liczby w systemie dziesiętnym. (b) Zamień liczby 23410 i 35610 na odpowiadające im liczby w systemie dwójkowym.

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=477910 Weźmy z kolei liczbę 477916 w systemie szesnastkowym. 4779 : 16 = 298 i reszta 11 298 : 16 = 18 i reszta 10 18 : 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 23410 i 35610 na odpowiadające im liczby w systemie szesnastkowym.

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

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. ą, ć, Ą, Ę, ä, ö, symbolu @, 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.

Kodowanie biało-czarnego obrazu Obraz normalny: Sposób zakodowania: Obraz powiększony do kodowania: Zakodowanie obrazu: źródło: http://edu.i-lo.tarnow.pl/inf/alg/002_struct/0004.php

Kodowanie kolorowego obrazu Obraz normalny: Sposób kodowania: Obraz powiększony do kodowania: Zakodowanie obrazu: źródło: http://edu.i-lo.tarnow.pl/inf/alg/002_struct/0004.php

Kodowanie tekstu Zadanie 4 Załóżmy, że symbole alfabetu polskiego kodowane są według reguły: Zakoduj zdanie: „ALA MA KOTA”. źródło: http://edu.i-lo.tarnow.pl/inf/alg/002_struct/0004.php

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: http://edu.i-lo.tarnow.pl/inf/prg/005_pmc1/0002.php Zadanie 5 128 TB = ? MB = ? B 2 Mb = ? B 10 MB = ? GB

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ą?