Wyklad02 druk


Informacje
informatyka to nauka o przetwarzaniu i przechowywaniu informacji
Podstawy informatyki (2)
informacja to:
konstatacja stanu rzeczy, wiadomość
mgr inż. Sebastian Pluta
pluta@icis.pcz.pl powiadamianie społeczeństwa lub określonych zbiorowości w
sposób zobiektywizowany, systematyczny i konkretny za pomocą
Instytut Informatyki Teoretycznej i Stosowanej
środków masowego przekazu
obiekt abstrakcyjny, który w postaci zakodowanej może być
przechowywany, przesyłany, przetwarzany i użyty do sterowania
Nowa encyklopedia powszechna, PWN 1998
podstawowa jednostka informacji to bit  wystarcza do
zakomunikowania jednego z conajwyżej dwóch równoprawdopodobnych
zdarzeń
Podstawy informatyki (2)  p. 1 Podstawy informatyki (2)  p. 2
Systemy liczbowe (1) Systemy liczbowe (2)
system pozycyjny to taki, w którym znaczenie znaków zależy od ich najbardziej popularnym systemem jest system dziesiętny,
pozycji dla którego N = 10
system wagowy to taki, w którym dla każdej pozycji znaku przypisana na przykład dla liczby 4703,32 zapisanej w systemie dziesiętnym:
jest inna waga
3
L = ai10i
ogólny opis pozycyjnego wagowego systemu liczbowego:
"
i=-2
n
L = aiNi czyli:
"
i=m
L = 2 10-2 + 3 10-1 + 3 100 + 0 101 + 7 102 + 4 103 =
gdzie:
= 0,02 + 0,3 + 3 + 0 + 700 + 4000 = 4703,32
N jest podstawą systemu, N 2,
m,n " Z, m 0,n 0,m n,
a " {0,...,N - 1}
Podstawy informatyki (2)  p. 3 Podstawy informatyki (2)  p. 4
Systemy liczbowe (3) Przeliczanie liczb w różnych systemach
inne systemy: (L)N zamiana całkowitej liczby dziesiętnej L na liczbę w systemie o
podstawie N:
na przykład dla liczby (4703,32)8:
3 L N = L1 reszta R1
L = ai8i
"
L1 N = L2 reszta R2
i=-2
. . . .
. . . .
. . . .
czyli:
Lk-1 N = 0 reszta Rk
L = 2 8-2 + 3 8-1 + 3 80 + 0 81 + 7 82 + 4 83 =
(L)N = RkRk-1 ...R2R1
= 0,03125 + 0,375 + 3 + 0 + 448 + 2048 = 2499,40625
Podstawy informatyki (2)  p. 5 Podstawy informatyki (2)  p. 6
Przeliczanie liczb w różnych systemach Przeliczanie liczb w różnych systemach
na przykład zamiana liczby 3490 na liczbę w systemie o podstawie 8: zamiana ułamka dziesiętnego L na ułamek w systemie o podstawie N:
3490 8 = 436 reszta 2
L N = L1 cz. całkowita C1
436 8 = 54 reszta 4
cz. ułamkowa U1 N = L2 cz. całkowita C2
. . . .
54 8 = 6 reszta 6
. . . .
. . . .
6 8 = 0 reszta 6
cz. ułamkowa Uk-1 N = Ck cz. całkowita Ck
(L)N = 0,C1C2 ...Ck
czyli: 3490 = (6642)8
Podstawy informatyki (2)  p. 7 Podstawy informatyki (2)  p. 8
Przeliczanie liczb w różnych systemach System dwójkowy i szesnastkowy (1)
na przykład zamiana ułamka 0,9692382125 na liczbę w systemie o system dwójkowy (binarny) jest podstawowym systemem liczbowym w
podstawie 8: informatyce
0,9692382125 8 = 7,75390625 cz. cał. 7
system szesnastkowy (heksadecymalny) jest często uzupełnieniem
systemu binarnego w informatyce
0,75390625 8 = 6,03125 cz. cał. 6
znaczne zmniejszenie ilości cyfr liczby w systemie
0,03125 8 = 0,25 cz. cał. 0
heksadecymalnym w stosunku do liczby binarnej
0,25 8 = 2,0 cz. cał. 2 łatwość przeliczania liczb binarnych na szesnastkowe i na odwrót
czyli: 0,9692382125 = (0,7602)8
Podstawy informatyki (2)  p. 9 Podstawy informatyki (2)  p. 10
System dwójkowy i szesnastkowy (2) System dwójkowy i szesnastkowy (3)
Interpretacja binarna liczb w systemie szesnastkowym:
zamiana liczb binarnych na heksadecymalne:
dziesiętna dwójkowa szesnast. dziesiętna dwójkowa szesnast. (1001110111010)2 =
0 0000 0 8 1000 8 = (0001|0011|1011|1010)2 = (13BA)16
1 0001 1 9 1001 9
2 0010 2 10 1010 A
zamiana liczb heksadecymalnych na binarne:
3 0011 3 11 1011 B
4 0100 4 12 1100 C (87DF3)16 = (1000|0111|1101|1111|0011)2 =
5 0101 5 13 1101 D = (10000111110111110011)2
6 0110 6 14 1110 E
7 0111 7 15 1111 F
Podstawy informatyki (2)  p. 11 Podstawy informatyki (2)  p. 12
Jednostki informacji (1) Jednostki informacji (2)
1 bit  1 b 103 B = 1000 B = 1 kB (kilobajt)
1 bajt (ang. byte)  1 B = 8 b
106 B = 1000000 B = 1000kB = 1 MB (megabajt)
na jednym bajcie można zapisać 28 czyli 256 różnych informacji
109 B = 1000000000 B = 1000MB = 1 GB (gigabajt)
1012 B = 1000000000000 B = 1000GB = 1 TB (terabajt)
210 B = 1024 B = 1 kB (kilobajt)
220 B = 1048576 B = 10242 B = 1024kB = 1 MB (megabajt)
210 B = 1024 B = 1 KiB (kibibajt)
230 B = 1073741824 B = 10243 B = 1024MB = 1 GB (gigabajt)
220 B = 1048576 B = 10242 B = 1024KiB = 1 MiB (mebibajt)
240 B = 11099511627776 B = 10244 B = 1024GB = 1 TB (terabajt)
230 B = 1073741824 B = 10243 B = 1024MiB = 1 GiB (gibibajt)
240 B = 11099511627776 B = 10244 B = 1024GiB = 1 TiB (tebibajt)
Podstawy informatyki (2)  p. 13 Podstawy informatyki (2)  p. 14
Kodowanie liczb całkowitych (1) Kodowanie liczb całkowitych (2)
na jednym bajcie można zapisać liczby 0;255 , czyli dla liczb całkowitych ze znakiem stosuje się tzw. kod uzupełnień (U2):
(00000000)2;(11111111)2
bit 7 6 5 4 3 2 1 0
w celu zwiększenia zakresu liczb całkowitych, stosuje się zapis na
waga -128 64 32 16 8 4 2 1
większej ilości bajtów, np.: dla dwóch bajtów można zapisać 216 liczb,
czyli 0;65535 .
na jednym bajcie można za pomocą tego kodu przedstawić liczby z
dla liczb całkowitych ujemnych, jeżeli przyjmiemy jeden bit znaku:
zakresu -128;127
bit 7 6 5 4 3 2 1 0
00000000 0 00000001 1
waga znak 64 32 16 8 4 2 1
na przykład:
10000000 -128 10000001 -127
w przedstawiony sposób nie koduje się liczb se znakiem, ponieważ:
01111111 127 11111111 -1
00000000 0
10000000 -0
Podstawy informatyki (2)  p. 15 Podstawy informatyki (2)  p. 16
Kodowanie liczb całkowitych (3) Kodowanie liczb całkowitych (4)
Przykładowe operacje na liczbach zapisanych w kodzie uzupełnień:
liczbę przeciwną uzyskuje się poprzez zanegowanie wszystkich bitów i
operacje arytmetyczne wykonuje się jak na zwykłych liczbach binarnych dodanie wartości 1, np.:
ignorując pożyczki i przeniesienia poza zakres, np.:
NOT 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 1
1 1 1 1 1 1 1 0
+ 1 1 1 1 1 1 1 1 -1
+ 1
1 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 -1
1 0 1 1 0 1 0 1 -75
+ 0 0 1 1 1 0 0 1 57
NOT 1 0 1 1 0 1 0 1 -75
1 1 1 0 1 1 1 0 -18
0 1 0 0 1 0 1 0
+ 1
0 0 1 1 1 0 0 1 57
- 1 1 1 1 1 1 1 1 -1
0 1 0 0 1 0 1 1 75
1 0 0 1 1 1 0 1 0 58
Podstawy informatyki (2)  p. 17 Podstawy informatyki (2)  p. 18
Kodowanie liczb całkowitych (5) Kodowanie liczb rzeczywistych (1)
spotyka się również kod uzupełnień o następujących wagach: kodowanie liczb rzeczywistych z przecinkiem umieszczonym  na stałe ,
np:
bit 7 6 5 4 3 2 1 0
waga 128 -64 -32 -16 -8 -4 -2 -1
1 1 1 1 1 1 1 1 , 1 1 1 1 1 1 1 1
na jednym bajcie można za pomocą tego kodu przedstawić liczby z daje wartość:
zakresu -127;128 255255 = 255,99609375
256
na przykład:
taki sposób kodowania ma wiele wad:
nieduże liczby możliwe do zakodowania
00000000 0 00000001 -1
mała dokładność (precyzja) zapisu części ułamkowej
10000000 128 10000001 127
trudny do oszacowania błąd bezwzględny obliczeń
01111111 -127 11111111 1
operacje na liczbach wykonuje się jak w każdym kodzie uzupełnień
Podstawy informatyki (2)  p. 19 Podstawy informatyki (2)  p. 20
Kodowanie liczb rzeczywistych (2) Kodowanie liczb rzeczywistych (3)
zapis zmiennoprzecinkowy: liczby zmiennoprzecinkowe o ustalonej precyzji są liczbami
przybliżonymi
L = s m Nc
gdzie:
precyzja liczb zmiennoprzecinkowych to ilość cyfr za pomocą których
N  podstawa systemu
wyrażona jest mantysa
s = sgn(L),
jeśli wynik jakiejkolwiek operacji wymaga większej precyzji to zostanie
c  cecha, całkowity wykładnik
on zaokrąglony
m  mantysa, znormalizowana najczęściej do przedziału (0,1)N;1)
powoduje to tzw. błędy zaokrągleń w obliczeniach wykonywanych na
dla liczby 2389,8765:
liczbach zmiennoprzecinkowych, np.:
2389,8765 = 0,23898765 104
liczba 0,249 1012 wymaga dla zapisu mantysy 3 cyfr
działanie:
dla liczby (11010,11011)2:
0,249 1012 + 1 = 249000000001 = 0.249000000001 1012
(11010,11011)2 = (0,1101011011)2 2(101)2
co powoduje konieczność użycia 12 cyfr do zapisu mantysy
Podstawy informatyki (2)  p. 21 Podstawy informatyki (2)  p. 22
Kodowanie liczb zmiennoprzecinkowych Kodowanie liczb zmiennoprzecinkowych
dla kodowania (FP2) liczb zmiennoprzecinkowych przyjmuje się dla liczby: (00010110)(FP2)
mantysę znormalizowaną do przedziału 1;2) czyli (1)2;(10)2) c = (0010)(U2) = 2
3
m = (1,110)2 = 1
4
mantysę zapisuje się w postaci liczby całkowitej dodatniej oraz bitu
3
L = (-1)0 1 22 = 7
4
znaku, cechę przy pomocy kodu uzupełnień
przyjmijmy dla jednego bajta:
dla liczby: 0,875
znak mantysy cecha mantysa 0,875 = (0,111)2 = (-1)0 (1,11)2 2(-1)2
c = -1 = (1111)(U2)
bit 7 6 5 4 3 2 1 0
m = (1,110)2
waga s -8 4 2 1 2-1 2-2 2-3
0,875 = (01111110)(FP2)
L = (-1)s 1.m 2c
Podstawy informatyki (2)  p. 23 Podstawy informatyki (2)  p. 24
Kodowanie liczb zmiennoprzecinkowych Kodowanie znaków (liter) (1)
norma IEEE 754 obejmuje trzy standardowe formaty kodowania liczb najbardziej popularnym standardem kodowania znaków jest kod ASCII
zmiennoprzecinkowych:
zapisuje znaki na 7 bitach
typ liczby bity cechy bity mantysy interpretacja
obejmuje kody od 0 do 127
REAL*4, short real 8 23 -1s 1.m 2c
np. wielkie litery alfabetu łacińskiego odpowiadają kodom 65  90,
małe 97  122, cyfry arabskie 48  57
REAL*8, long real 11 52 -1s 1.m 2c
użycie pozostałego ósmego bitu bajta tworzy tzw. Extended ACSII
REAL*10, temp real 15 64 -1s 0.m 2c
(rozszerzony kod ASCII)
maksymalna wartość cechy c przy zerowej wartości mantysy m daje w
potrzeba reprezentacji innych znaków (np. narodowych znaków
zależności o bitu znaku +INF lub -INF
diakrytycznych) spowodowała potrzebę stworzenia dodatkowych kodów
maksymalna wartość cechy c dla dowolnej wartości różnej od zera
istnieje kilka standardów kodowania polskich znaków, najbardziej
mantysy m reprezentuje przypadek dla którego ciąg bitów nie jest liczbą
popularne to: ISO-8859-2 (Latin-2) i Windows-1250.
 NaN (ang. Not a Number)
Podstawy informatyki (2)  p. 25 Podstawy informatyki (2)  p. 26
Kodowanie znaków (liter) (2) Algebra Boole a (1)
współczesnym standardem kodowania znaków jest Unicode (UCS) Algebra Boole a jest algebrą z trzema operacjami na dwuwartościowych
(0, 1) argumentach
powstał jako próba ujednolicenia kodowania znaków różnych
języków w Internecie
wynik tych operacji jest również dwuwartościowy
pierwotnie składał się z 16 bitów
operacje algebry Boole a:
dzisiejszy standard UCS ISO 10646 operuje na 31-bitach
suma logiczna (suma boolowska, alternatywa)  dwuargumentowa
UCS obejmuje wszystkie podstawowe alfabety świata: arabski,
jeżeli co najmniej jeden z argumentów jest równy 1, to wynik
hebrajski, japoński, koreański, chiński
jest równy 1
kody liter znaków diakrytycznych alfabetu łacińskiego znajdują się
iloczyn logiczny (iloczyn boolowski, koniunkcja)  dwuargumentowy
w zakresie 256  383 Unicode
wynik iloczynu jest równy 1 wtedy i tylko wtedy, gdy wszystkie
argumenty przyjmują wartość 1
negacja (dopełnienie, inwersja)  jednoargumentowa
wynikiem jest warość będąca zamianą wartości argumentu
Podstawy informatyki (2)  p. 27 Podstawy informatyki (2)  p. 28
Algebra Boole a (2) Algebra Boole a (3)
Działania Algebry Boole a spełniają następujące aksjomaty:
Tabela prawdy dla dwóch zmiennych:
przemienność
a '" b = b '" a
a b a '" b a (" b a b
a (" b = b (" a
0 0 0 0 1 1
łączność
1 0 0 1 0 1
(a '" b) '" c = a '" (b '" c)
0 1 0 1 1 0 (a (" b) (" c = a (" (b (" c)
1 1 1 1 0 0
rozdzielność
a (" (b '" c) = (a (" b) '" (a (" c)
a '" (b (" c) = (a '" b) (" (a '" c)
Podstawy informatyki (2)  p. 29 Podstawy informatyki (2)  p. 30
Algebra Boole a (4) Historia informatyki (1)
identyczność od 440 p.n.e. do XVIII wieku  liczydło Abacusa  urządzenie
ułatwiające liczenie, prekursor liczydła i maszyn liczących, składało się z
a (" 0 = a, a (" 1 = 1
tablicy z pionowymi rowkami, w których umieszczano kamyki
a '" 1 = a, a '" 0 = 0
dopełnienie
a (" a = 1
a '" a = 0
prawa De Morgana
(a (" b) = a '" b
(a '" b) = a (" b
Podstawy informatyki (2)  p. 31 Podstawy informatyki (2)  p. 32
Historia informatyki (2) Historia informatyki (3)
1620 r.  suwak logarytmiczny (suwak rachunkowy)  wynaleziony przez 1642 r.  arytmometr  mechaniczna maszyna licząca, poprzedniczka
Edmunda Guntera prosty przyrząd ułatwiający obliczenia, powszechnie kalkulatora, wynaleziona przez Blaise Pascal a
używany przez inżynierów do końca lat 70-tych
1822 r.  projekt maszyny analitycznej Charles a Babbage a
wykorzystującej karty perforowane
Podstawy informatyki (2)  p. 33 Podstawy informatyki (2)  p. 34
Historia informatyki (4) Historia informatyki (5)
1941 r.  Konrad Zuse  budowa pierwszego kalkulatora 1958 r.  XYZ  pierwsza polska maszyna cyfrowa
elektromechanicznego
1967 r.  rozpoczęcie seryjnej produkcji komputera ODRA 1024
1946 r.  ENIAC, 1948 r.  Mark I  prezentacje pierwszych maszyn
1969 r.  Dennis Ritchie i Ken Thompson, Bell Labs  pierwsza wersja
cyfrowych
systemu UNIX
1971 r.  Intel  pierwszy komercyjny mikroprocesor (4004): 4 bitowy,
cena: 300$
Podstawy informatyki (2)  p. 35 Podstawy informatyki (2)  p. 36
Historia informatyki (6)
1974 r.  Intel  powstanie mikroprocesora 16-bitowego 8080
1977 r.  pierwsze komputery osobiste zaprezentowane przez firmę
Apple Computer
1981 r.  IBM udostępnia pierwsze komputery osobiste swej
architektury wyposażone w system operacyjny MS-DOS 1.0
1982 r.  Compaq  pierwszy komputer przenośny
1983 r.  funkcjonalny początek Internetu
1992 r.  liczba hostów w Internecie sięga miliona
1992 r.  DEC Alpha  pierwszy procesor 64-bitowy
Podstawy informatyki (2)  p. 37


Wyszukiwarka

Podobne podstrony:
Wyklad03 druk
Wyklad01 druk
Wyklad02 druk
wykład06filtracjaadsorpcja DRUK
wyklad MB druk
wykład 11 ściekizłoża DRUK
wyklad 1 ChS S druk
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
mo3 wykladyJJ

więcej podobnych podstron