t / W - Katedra Informatyki > Home

Transkrypt

t / W - Katedra Informatyki > Home
tƐƚħƉĚŽ/ŶĨŽƌŵĂƚLJŬŝ
WŽĚƐƚĂǁLJĂƌLJƚŵĞƚLJŬŝŬŽŵƉƵƚĞƌŽǁĞũ
Cezary Bolek
[email protected]
Uniwersytet Łódzki
Wydział Zarządzania
Katedra Informatyki
WŽũħĐŝĞůŝĐnjĞďŶŽƑĐŝ
•
•
Naturalna zdolność człowieka do postrzegania liczebności nie
przekracza 3 lub 4.
Aby określić liczebność bardziej licznych zbiorów trzeba uŜywać pojęć
abstrakcyjnych – liczebników.
Wstęp do Informatyki
[email protected]
>ŝĐnjĞŶŝĞďĞnjůŝĐnjĞďŶŝŬſǁ
•
•
Budowa ludzkiego ciała dostarczyła
pierwszych narzędzi ułatwiających
liczenie.
We współczesnych językach, nazwy
niektórych liczebników pochodzą
bezpośrednio od nazw części ciała.
Wstęp do Informatyki
[email protected]
1
ĂƉŝƐůŝĐnjď
Egipt 3000-1000 p.Chr.
Indie 2500-1700 p.Chr.
Wstęp do Informatyki
[email protected]
ĂƉŝƐůŝĐnjď
Grecja 500-200 p.Chr.
Cywilizacja Majów 300-1400 A.D.
Wstęp do Informatyki
[email protected]
ĂƉŝƐůŝĐnjď
Licja (Azja Mniejsza) 500-0 p.Chr.
Cywilizacja Etruska 600-400 p.Chr.
Wstęp do Informatyki
[email protected]
2
^LJƐƚĞŵLJůŝĐnjďŽǁĞ
• Addytywne:
–
–
–
–
najprostsze i najstarsze
liczba jest sumą symboli (później cyfr)
łatwe dodawanie i odejmowanie
trudne mnoŜenie i dzielenie
• Pozycyjne
–
–
–
–
współcześnie w uŜyciu
liczba jest sumą cyfr z wagą pozycji
koncepcja symbolu pustego – zera
proste +, -, *, / i inne
Wstęp do Informatyki
[email protected]
^LJƐƚĞŵĂĚĚLJƚLJǁŶLJ
X=VV=IIIIIIIIII, V=IIIII, I=1
Cyfra (symbol) ma swoją stałą wartość
liczba
pozycja cyfry
XXXIII
6
5
4
3
2
1
X6 = X5 = X4 = dziesięć
Pozycja cyfry nie ma znaczenia
X X X I I I = X+X+X+I+I+I = 33
Wartość liczby jest sumą cyfr
(istnieją drobne modyfikacje tej zasady)
Wstęp do Informatyki
[email protected]
ĞƌŽ
1 2 3 4 5 6 7 8 9 10
?
0123456789
Liczba cyfr wyznacza tzw. podstawę systemu liczbowego (np.10).
Liczby większe wymagają zapisu w postaci kombinacji cyfr o róŜnych
wagach - wielokrotnościach podstawy.
Cyfra 0 ma znaczenie szczególne –
symbolizuje brak cyfry na określonej pozycji, zaznaczając
jednocześnie tę pozycję
Liczba 10 - w kaŜdym systemie pozycyjnym –
oznacza pierwszą liczbę złoŜoną
Wstęp do Informatyki
[email protected]
3
^LJƐƚĞŵƉŽnjLJĐLJũŶLJ
1341 ≠1431
liczba
pozycja cyfry
3
2
1
0
1≠1
Pozycja cyfry ma (!) znaczenie
1341 = 1·103+3·102+4·101+1 ·100
Wartość liczby jest sumą cyfr
pomnoŜonych przez wagę połoŜenia
(potęgę podstawy sytemu)
Wstęp do Informatyki
[email protected]
^LJƐƚĞŵƉŽnjLJĐLJũŶLJ
am am-1 ... a2 a1 a0
m
am·b + am-1·b
np.
m-1
b – podstawa
m...0 – pozycja
1
+...+ a1·b + a0·b
0
system dziesiętny: 0 1 2 3 4 5 6 7 8 9
1234 = 1*103 + 2*102 + 3*101 + 4*100 (dziesiętnie)
system ósemkowy: 0 1 2 3 4 5 6 7
1207 = 1*83 + 2*82 + 0*81 + 7*80 (dziesiętnie)
system szesnastkowy: 0 1 2 3 4 5 6 7 8 9 A B C D E F
a2f5 = 10*163 + 2*162 + 15*161 + 5*160 (dziesiętnie)
Wstęp do Informatyki
[email protected]
^LJƐƚĞŵƐnjĞƐŶĂƐƚŬŽǁLJ;ŚĞŬƐĂĚĞĐLJŵĂůŶLJͿ
Hex – Dec
0–0
1–1
2–2
3–3
4–4
5–5
6–6
7–7
8–8
9–9
Wstęp do Informatyki
Hex – Dec
A – 10
B – 11
C – 12
D – 13
E – 14
F – 15
10h = 16
19h = 25
1Ah = 26
52h = 82
100h = 256
BABAh = 47802
F4240h = 1000000
[email protected]
4
^LJƐƚĞŵĚǁſũŬŽǁLJ;ďŝŶĂƌŶLJͿ
Najprostszy z moŜliwych: cyfry 0 i 1
• Do zapisu liczb moŜna uŜywać nie tylko cyfr, ale wszystkich
dwu-stanowych zjawisk:
– dźwięk krótki i długi: alfabet Morse’a
– kolor czarny i biały: kody paskowe
– napięcie wysokie i niskie: liczby w komputerach
• Zapis liczb za pomocą tylko dwu cyfr jest najbardziej
odporny za zakłócenia, gdyŜ liczby zapisuje się za pomocą
dwóch skrajnie róŜnych stanów, bez Ŝadnych stanów
pośrednich
• fundament niezawodności techniki cyfrowej.
Wstęp do Informatyki
[email protected]
^LJƐƚĞŵĚǁſũŬŽǁLJ;ďŝŶĂƌŶLJͿ
cyfra dwójkowa – 0 lub 1 – bit (binary digit)
liczba n-bitowa: an-1 ... a1 a0
an-1·2
n-1
1
+ ...+ a1·2 + a0·2
0
101b= 1*22 + 0*21 + 1*20 = 4+1 = 5d
10011001b= 27+24+23+20 = 128+18+8+1 = 153
Wstęp do Informatyki
[email protected]
EĂƚƵƌĂůŶLJŬŽĚďŝŶĂƌŶLJͲ E<
Naturalny kod binarny, to zapis liczby dwójkowej
an-1 ... a1 a0,
której wartość oblicza oblicza się według wzoru:
n-1
an-1·2
Wstęp do Informatyki
1
+ ...+ a1·2 + a0·2
0
[email protected]
5
ĂũƚLJŝƐųŽǁĂ
Liczby dwójkowe mogą mieć dowolną długość, ale w systemach
komputerowych przyjęły następujące standardy długości liczb:
8-bitów
16-bitów
32-bity
– Bajt (Byte), B
– Słowo (Word), W
– Długie słowo (Long Word), L
Double
Zakresy liczb dwójkowych (w NKB) są następujące:
Bajt:
Słowo:
D.słowo:
0 ... 28-1
0 ... 216-1
0 ... 232-1
Wstęp do Informatyki
= 0 ... 255
= 0 ... 65535
= 0 ... 2147483647
[email protected]
<ŝůŽ͕DĞŐĂ͕'ŝŐĂ͘͘͘;ǁŝŶĨŽƌŵĂƚLJĐĞͿ
W systemie jednostek SI: 1k = 1000, 1M=1000k, 1G=1000M
W systemach pamięci komputerowych najmniejsza porcja
danych to 1Bajt = 1B (8-bitów, 8b).
Pojemności pamięci mierzy się więc powszechnie w tej
jednostce, tj. jako wielokrotność 1B.
1kB =
1MB =
1GB =
210B
210kB
210MB
= 1024B
= 1024kB
= 1024MB
Marketing vs Informatyka
Twardy dysk: 40GB
Wstęp do Informatyki
37.2GB
[email protected]
>ŝĐnjďLJĚǁſũŬŽǁĞĚŽnjĂƉĂŵŝħƚĂŶŝĂ
Dec – Bin – Hex
0 – 0000 – 0
1 – 0001 – 1
2 – 0010 – 2
3 – 0011 – 3
4 – 0100 – 4
5 – 0101 – 5
6 – 0110 – 6
7 – 0111 – 7
Wstęp do Informatyki
Dec – Bin – Hex
8 – 1000 – 8
9 – 1001 – 9
10 – 1010 – A
11 – 1011 – B
12 – 1100 – C
13 – 1101 – D
14 – 1110 – E
15 – 1111 – F
[email protected]
6
WƌnjĞůŝĐnjĂŶŝĞĞĐ→ ŝŶ;E<Ϳ
Przeliczanie liczb dziesiętnych na dwójkowe
polega na rozkładzie liczby na sumę potęg liczby 2,
i zapisie 1 na pozycji równej wartości danej potęgi.
1 2 4 8 16 32 64 128 256 512 1024
np.
129 = 128 + 1 = 27 + 20 = 10000001b
143 = 128 + 8 + 4 + 2 + 1 = 100011141b
77 = 64 + 8 + 4 + 1 = 01001101b
17 = 16 + 1 = 00010001b
Wstęp do Informatyki
[email protected]
WƌnjĞůŝĐnjĂŶŝĞŝŶ;E<Ϳ→ ĞĐ
Przeliczanie liczb dwójkowych na dziesiętne
polega na sumowaniu potęg liczby 2
odpowiadających pozycjom ‘1’ w liczbie dwójkowej.
10000001b = 27 + 20 = 128 + 1 = 129
00010001b = 16+ 1 = 17
Wstęp do Informatyki
[email protected]
WƌnjĞůŝĐnjĂŶŝĞĞĐ↔ ,Ğdž
3F8h = 3*162 + 15*161 + 8*160 = 768 + 240 +8
= 1016
375
= 1*256 + 7*16 + 7 = 1*162 + 7*161 + 7*160
= 177h
W dzisiejszych czasach ...
najlepiej skorzystać z kalkulatora
Wstęp do Informatyki
[email protected]
7
WƌnjĞůŝĐnjĂŶŝĞŝŶ;E<Ϳ↔ ,Ğdž
Przeliczanie liczb dwójkowych na szesnastkowe
(lub odwrotnie) polega na zamianie kaŜdych 4 cyfr
dwójkowych na odpowiednią cyfrę heksadecymalną.
1001 1101
9
D
5
A
0101 1010
0101 1010 0001 0111b = 5A17h
Liczby szesnastkowe ułatwiają posługiwanie się duŜymi liczbami dwójkowymi
Wstęp do Informatyki
[email protected]
ŽĚĂǁĂŶŝĞůŝĐnjďĚǁſũŬŽǁLJĐŚ;E<Ϳ
1 1 1
10010100 (148)
+ 01001111 ( 79)
11100011 (227)
1 1 1 1 1
10011110 (158)
+ 01100100 (100)
bit
100000010 ( 2) 258>255!
przeniesienia
(carry)
! Uwaga na przekroczenie zakresu liczby
Wstęp do Informatyki
[email protected]
KĚĞũŵŽǁĂŶŝĞůŝĐnjďĚǁſũŬŽǁLJĐŚ
W kaŜdym systemie liczbowym:
X – Y = X + (–Y)
oraz
X – X = X + (–X) = 0
Odejmowanie liczb najłatwiej zrealizować jako dodawanie liczby
ujemnej.
Potrzebny jest zatem sposób zapisu liczb ujemnych.
(NKB nie pozwala na zapis liczb ujemnych)
Wstęp do Informatyki
[email protected]
8
>ŝĐnjďLJƵũĞŵŶĞʹ ŬŽĚŶĂŬͲDŽĚƵų ;DͿ
Kod Znak-Moduł (ZM):
niech najstarszy bit oznacza znak liczby
1 – minus, 0 - plus
10001001 = -9
znak + moduł (NKB)
System ZM nie pozwala na proste wykonywanie
dodawania liczb ujemnych – w praktyce nie jest juŜ
stosowany.
01000001 (65)
+ 10000001 (-1)
11000010 (-66 !)
Wstęp do Informatyki
[email protected]
>ŝĐnjďLJƵũĞŵŶĞʹ hnjƵƉĞųŶŝĞŶŝĞ:ĞĚLJŶŬŽǁĞ ;hϭͿ
Uzupełnienie jedynkowe (U1): negacja bitów
01000001 ( 65)
10111110 (-65)
11111111 ( -0 ?)
+
+
01000001 (65)
11111110 (-1)
1 00111111 (63 !)
Wstęp do Informatyki
[email protected]
>ŝĐnjďLJƵũĞŵŶĞʹ hnjƵƉĞųŶŝĞŶŝĞǁſũŬŽǁĞ;hϮͿ
Uzupełnienie dwójkowe (U2):
1. negacja bitów
2. dodanie liczby 1
np. aby zapisać liczbę – 39 w kodzie U2:
00100111
11011000
00000001
11011001
Wstęp do Informatyki
(39)
U1
+1
(-39)
sprawdzenie:
+
00100111 (39)
11011001 (-39)
00000000
[email protected]
9
<ŽĚhϮ
Kod uzupełnienia dwójkowego (U2),
to zapis liczby dwójkowej
an-1 ... a1 a0,
której wartość oblicza oblicza się
według wzoru:–an-1·2
n-1
+ an-2·2
n-2
1
0
+ ...+ a1·2 + a0·2
znak minus (-) przy
największym składniku
Wstęp do Informatyki
[email protected]
hϮĐ͘Ě͘
an-1 an-1 ... a1 a0
–2n-1
+ moduł (NKB)
(bit znaku)
11111111 = -1
–27 + moduł (NKB)
–128 + 127 = –1
11111111 ( -1)
11111111 (-1)
+ 00000001 (+1)
+ 11111111 (-1)
1
00000000 ( 0)
Wstęp do Informatyki
1
11111110 (-2)
[email protected]
>ŝĐnjďLJhϮʹ njĂŬƌĞƐ
Ze względu na postać liczby:
–an-1·2
n-1
+ an-1·2
n-2
1
+ ...+ a1·2 + a0·2
0
zakres liczb w U2 wynosi:
n-1
n-1
–2 ... 0 ... 2 –1
dla liczb n-bitowych.
W szczególności dla bajta (8-bitów) zakres ten wynosi:
7
7
–2 ... 0 ... 2 –1
–128 ... 0 ... 127
Wstęp do Informatyki
[email protected]
10
hϮĐ͘Ě͘
reprezentacja 8-bitowych liczb w kodzie U2:
-128
-127
-126
...
-2
-1
0
1
2
...
126
127
Wstęp do Informatyki
=
=
=
10000000
10000001
10000010
=
=
=
=
=
11111110
11111111
00000000
00000001
00000010
=
=
01111110
01111111
[email protected]
hϮĐ͘Ě͘
Wstęp do Informatyki
[email protected]
WƌnjĞůŝĐnjĂŶŝĞŝŶ;hϮͿ→ ĞĐ
Przeliczanie ujemnych liczb U2 na dziesiętne
polega na dodaniu wartości wagi bitu znaku -2n-1
do wartości modułu.
10000001b = -27 + 20 = -128 + 1 = -127
10010001b = -27 + 16+ 1 = -128 + 17= -111
Wstęp do Informatyki
[email protected]
11
WƌnjĞůŝĐnjĂŶŝĞĞĐ→ ŝŶ;hϮͿ
Przeliczanie ujemnych liczb dziesiętnych na U2 polega
odjęciu wartości wagi bitu znaku -2n-1,
(czyli dodaniu 2n-1) od wartości liczby i zapisaniu wyniku
jako modułu (w NKB).
-120:
znak = 1
moduł = -120+27 = -120+128 = 8 = 0001000b
-120 = 10001000b
Wstęp do Informatyki
[email protected]
njŝĂųĂŶŝĂǁŬŽĚnjŝĞhϮ
Reguła odejmowania:
aby odjąć jedną liczbę (odjemnik)
od drugiej (odjemna), oblicz uzupełnienie
dwójkowe odjemnika i dodaj do odjemnej.
Rozszerzenie znakowe:
aby liczbę n-bitową U2 zapisać na m-bitach
(m>n), naleŜy uzupełnić brakujące bity
wartością najstarszego bitu (0 lub 1)
liczby n-bitowej.
8-bitowa liczba –99 =
10011101b
16-bitowa liczba –99 = 1111111110011101b
Wstęp do Informatyki
[email protected]
njŝĂųĂŶŝĂǁŬŽĚnjŝĞhϮ
Reguła przepełnienia (overflow):
przepełnienie (błąd zakresu) występuje podczas
dodawania dwóch liczb ujemnych lub dwóch liczb
dodatnich, gdy wynik ma znak przeciwny.
+
10000000 (-128)
11111111 ( -1)
1 01111111 ( 127)
+
01111111 ( 127)
00000001 ( 1)
10000000 (-128)
Podczas dodawania liczb przeciwnych znaków
przepełnienie nie występuje.
Wstęp do Informatyki
[email protected]
12
/ŶƚĞƌƉƌĞƚĂĐũĂůŝĐnjďĚǁſũŬŽǁLJĐŚ
Wartość liczby dwójkowej zaleŜy od interpretacji jej zapisu.
Ta sama sekwencja zer i jedynek moŜe oznaczać róŜne
liczby.
10101010b = 170 (NKB)
10101010b = -86 (U2)
10101010b = -42 (ZM)
Wstęp do Informatyki
[email protected]
13