Wyklad02 druk


Informacje
informatyka to nauka o przetwarzaniu i przechowywaniu informacji
informacja to:
Podstawy informatyki (2)
konstatacja stanu rzeczy, wiadomość
dr inż. Sebastian Pluta
powiadamianie społeczeństwa lub określonych zbiorowości w
pluta@icis.pcz.pl
sposób zobiektywizowany, systematyczny i konkretny za pomocą
środków masowego przekazu
Instytut Informatyki Teoretycznej i Stosowanej
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 co najwyżej dwóch zdarzeń
Podstawy informatyki (2)  p.1
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.2 Podstawy informatyki (2)  p.3
Systemy liczbowe (3) Przeliczanie liczb w różnych systemach
zamiana całkowitej liczby dziesiętnej L na liczbę w systemie o
inne systemy: (L)N
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.4 Podstawy informatyki (2)  p.5
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. cakowita C1
436 ÷ 8 = 54 reszta 4
cz. uamkowa U1 · N = L2 cz. cakowita C2
. . . .
54 ÷ 8 = 6 reszta 6
. . . .
. . . .
6 ÷ 8 = 0 reszta 6
cz. uamkowa Uk-1 · N = Ck cz. cakowita Ck
(L)N = 0,C1C2 ...Ck
czyli: 3490 = (6642)8
Podstawy informatyki (2)  p.6 Podstawy informatyki (2)  p.7
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
łatwość przeliczania liczb binarnych na szesnastkowe i na odwrót
0,25 · 8 = 2,0 cz. caÅ‚. 2
czyli: 0,9692382125 = (0,7602)8
Podstawy informatyki (2)  p.8 Podstawy informatyki (2)  p.9
System dwójkowy i szesnastkowy (2) System dwójkowy i szesnastkowy (3)
Interpretacja binarna liczb w systemie szesnastkowym: zamiana liczb binarnych na heksadecymalne:
(1001110111010)2 =
dziesiętna dwójkowa szesnast. dziesiętna dwójkowa szesnast.
= (0001|0011|1011|1010)2 = (13BA)16
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
zamiana liczb heksadecymalnych na binarne:
3 0011 3 11 1011 B
(87DF3)16 = (1000|0111|1101|1111|0011)2 =
4 0100 4 12 1100 C
= (10000111110111110011)2
5 0101 5 13 1101 D
6 0110 6 14 1110 E
7 0111 7 15 1111 F
Podstawy informatyki (2)  p.10 Podstawy informatyki (2)  p.11
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.12 Podstawy informatyki (2)  p.13
Kodowanie liczb całkowitych (1) Kodowanie liczb całkowitych (2)
dla liczb całkowitych ze znakiem stosuje się tzw. kod uzupełnień (U2):
na jednym bajcie można zapisać liczby 0;255 , czyli
(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 liczbie 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 ze znakiem, ponieważ:
01111111 127 11111111 -1
00000000 0
10000000 -0
Podstawy informatyki (2)  p.14 Podstawy informatyki (2)  p.15
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
dodanie wartości 1, np.:
operacje arytmetyczne wykonuje się jak na zwykłych liczbach binarnych
NOT 0 0 0 0 0 0 0 1 1
ignorując pożyczki i przeniesienia poza zakres, np.:
1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 1 1
+ 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
0 1 0 0 1 0 1 1 75
- 1 1 1 1 1 1 1 1 -1
1 0 0 1 1 1 0 1 0 58
Podstawy informatyki (2)  p.16 Podstawy informatyki (2)  p.17
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 255
255 = 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.18 Podstawy informatyki (2)  p.19
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 liczba 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.20 Podstawy informatyki (2)  p.21
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
m = (1,110)2 = 13
mantysę zapisuje się w postaci liczby całkowitej dodatniej oraz bitu
4
3
L = (-1)0 · 1 · 22 = 7
znaku, cechę przy pomocy kodu uzupełnień
4
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.22 Podstawy informatyki (2)  p.23
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 (-1)s · 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 (-1)s · 1.m · 2c
użycie pozostałego ósmego bitu bajta tworzy tzw. Extended ACSII
REAL*10, temp real 15 64 (-1)s · 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.24 Podstawy informatyki (2)  p.25
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 argumentach z
dwuwartościowego zbioru {0,1}
powstał jako próba ujednolicenia kodowania znaków różnych
języków w Internecie
wynik tych operacji jest również zawarty w podanym dwuwartościowym
pierwotnie składał się z 16 bitów zbiorze
dzisiejszy standard UCS ISO 10646 operuje na 31-bitach
operacje algebry Boole a:
UCS obejmuje wszystkie podstawowe alfabety świata: arabski,
suma logiczna (suma boolowska, alternatywa, (") 
hebrajski, japoński, koreański, chiński
dwuargumentowa
kody liter znaków diakrytycznych alfabetu łacińskiego znajdują się jeżeli co najmniej jeden z argumentów jest równy 1, to wynik
w zakresie 256  383 Unicode jest równy 1
w przeciwnym razie przyjmuje wartość 0
Podstawy informatyki (2)  p.26 Podstawy informatyki (2)  p.27
Algebra Boole a (2) Algebra Boole a (3)
operacje algebry Boole a (c. d.): Działania Algebry Boole a spełniają następujące aksjomaty:
iloczyn logiczny (iloczyn boolowski, koniunkcja, '") 
przemienność
dwuargumentowy
a '" b = b '" a
wynik iloczynu jest równy 1 wtedy i tylko wtedy, gdy wszystkie
a (" b = b (" a
argumenty przyjmują wartość 1,
w przeciwnym razie przyjmuje wartość 0 łączność
negacja (dopełnienie, inwersja,  )  jednoargumentowa (a '" b) '" c = a '" (b '" c)
wynik negacji jest równy 1, gdy argument ma wartość 0 i
(a (" b) (" c = a (" (b (" c)
odwrotnie
rozdzielność
a (" (b '" c) = (a (" b) '" (a (" c)
a '" (b (" c) = (a '" b) (" (a '" c)
Podstawy informatyki (2)  p.28 Podstawy informatyki (2)  p.29
Algebra Boole a (4) Algebra Boole a (2)
identyczność
Tabela prawdy dla dwóch zmiennych:
a (" 0 = a, a (" 1 = 1
a '" 1 = a, a '" 0 = 0
dopełnienie
a b a '" b a (" b a2 b2
a (" a2 = 1
0 0 0 0 1 1
a '" a2 = 0
1 0 0 1 0 1
prawa De Morgana
0 1 0 1 1 0
(a (" b)2 = a2 '" b2
1 1 1 1 0 0
(a '" b)2 = a2 (" b2
Podstawy informatyki (2)  p.30 Podstawy informatyki (2)  p.31
Historia informatyki (1) Historia informatyki (2)
od 440 p.n.e. do XVIII wieku  liczydło Abacusa  urządzenie 1620 r.  suwak logarytmiczny (suwak rachunkowy)  wynaleziony przez
ułatwiające liczenie, prekursor liczydła i maszyn liczących, składało się z Edmunda Guntera prosty przyrząd ułatwiający obliczenia, powszechnie
tablicy z pionowymi rowkami, w których umieszczano kamyki używany przez inżynierów do końca lat 70-tych
Podstawy informatyki (2)  p.32 Podstawy informatyki (2)  p.33
Historia informatyki (3) Historia informatyki (4)
1642 r.  arytmometr  mechaniczna maszyna liczÄ…ca, poprzedniczka 1941 r.  Konrad Zuse  budowa pierwszego kalkulatora
kalkulatora, wynaleziona przez Blaise Pascal a elektromechanicznego
1946 r.  ENIAC, 1948 r.  Mark I  prezentacje pierwszych maszyn
cyfrowych
1822 r.  projekt maszyny analitycznej Charles a Babbage a
wykorzystujÄ…cej karty perforowane
Podstawy informatyki (2)  p.34 Podstawy informatyki (2)  p.35
Historia informatyki (5) Historia informatyki (6)
1958 r.  XYZ  pierwsza polska maszyna cyfrowa 1974 r.  Intel  powstanie mikroprocesora 16-bitowego 8080
1967 r.  rozpoczęcie seryjnej produkcji komputera ODRA 1024 1977 r.  pierwsze komputery osobiste zaprezentowane przez firmę
Apple Computer
1969 r.  Dennis Ritchie i Ken Thompson, Bell Labs  pierwsza wersja
systemu UNIX 1981 r.  IBM udostępnia pierwsze komputery osobiste swej
architektury wyposażone w system operacyjny MS-DOS 1.0
1971 r.  Intel  pierwszy komercyjny mikroprocesor (4004): 4 bitowy,
cena: 300$ 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.36 Podstawy informatyki (2)  p.37


Wyszukiwarka