konwersja bin iso

Transkrypt

konwersja bin iso
2012-11-24
PODSTAWY INFORMATYKI
Informatyka? - definicja
• Definicja opracowana przez ACM (Association for
Computing Machinery) w 1989 roku:
„Informatyka to systematyczne badanie procesów
algorytmicznych, które charakteryzują i przetwarzają
informację, teoria, analiza, projektowanie, badanie
efektywności, implementacja i zastosowania procesów
algorytmicznych. Podstawowe pytanie informatyki to:
co można (efektywnie) zalgorytmizować?”
1
2012-11-24
Informatyka? - definicja
• Definicja (Wikipedia – Wolna Encyklopedia):
„Informatyka to dziedzina nauki i techniki zajmująca się
przetwarzaniem informacji - w tym technologiami
przetwarzania informacji oraz technologiami wytwarzania
systemów przetwarzających informacje. Pierwotnie
dziedzina matematyki, w ciągu ostatnich kilkudziesięciu
lat stała się osobną dyscypliną wiedzy.”
Dyscyplina, która tworzy podstawy naukowe zagadnień:
Architektura
komputerów
Przetwarzanie
informacji
INFORMATYKA
Programowanie
komputerów
Sieci
komputerowe
Algorytmy
...
...
2
2012-11-24
Organizacje informatyków
• ACM - Association for Computing Machinery
(Stowarzyszenie
Sprzętu
Komputerowego),
organizacja
grupująca
profesjonalistów
informatycznych. Założona w 1947 roku na
Uniwersytecie Columbia w Nowym Jorku. Liczy ok.
70.000 członków.
– Zajmuje się wszechstronną działalnością na rzecz
rozwoju informatyki, m.in. wspiera rozwój nauk
informatycznych i techniki komputerowych, organizuje
światowe konferencje.
– Znana także z przyznawania od 1966 r. dorocznych
nagród Turinga (100 tys. USD) za wybitne osiągnięcia w
dziedzinie informatyki.
– Nagroda
jest
traktowana
jako
Nobel
branży
komputerowej.
Organizacje informatyków
• IEEE (Institute of Electrical and Electronics
Engineers - Instytut Inżynierów Elektryków i
Elektroników).
– największe stowarzyszenie zawodowe na świecie,
– organizacja typu non-profit skupiająca profesjonalistów.
Jednym z podstawowych jej zadań jest ustalanie
standardów konstrukcji, pomiarów itp. dla urządzeń
elektronicznych, w tym standardów dla urządzeń i
formatów komputerowych.
– organizacja powstała w 1963 r.
• ASIS - American Society for Information Science,
(Stowarzyszenie nauk informacyjnych),
– skupia specjalistów informacji profesjonalnej, poszukuje
nowych teorii, technik i technologii zdobywania informacji.
3
2012-11-24
Organizacje informatyków
• PIIiT - Polska Izba Informatyki i Telekomunikacji
– organizacja samorządu gospodarczego,
– istnieje od 1993 roku.
– zrzesza, na zasadzie dobrowolności, podmioty
gospodarcze prowadzące działalność w przemyśle
teleinformatycznym – telekomunikacji i informatyki.
– do Izby należy ponad 150 firm.
• PTI – Polskie Towarzystwo Informatyczne
– założone w 1981 r.,
– organizacja non-profit, dążąca do udoskonalania oraz
promowania wysokiej jakości standardów w zawodzie
informatyka.
Jednostki informacji
Najmniejszą jednostką informacji jest 1 bit.
Bit przyjmuje wartość 0 lub 1: (2 znaki)
1 bajt (ang. byte)
= 8 bitów
1 słowo (ang. word) = 2 bajty (16 bitów)
1 dwusłowo
= 4 bajty (32 bity)
2 bity: 00, 01, 10, 11 (rozróżniają 4 znaki)
3 bity: 000, 001, ..., 111 (rozróżniają 8 znaków)
4 bity: 0000, ..., 1111 (rozróżniają 16 znaków)
8 bitów pozwala odróżnić 256 znaków (28)
4
2012-11-24
Jednostki informacji
1 kbajt [KB]
= 1024 bajty
1 megabajt [MB] = 1024 KB
1 gigabajt [GB] = 1024 MB
1 terabajt [TB] = 1024 GB
1 petabajt [PB] = 1024 TB
Bib
= 210 bajta
= 220 bajtów
= 230 bajtów
= 240 bajtów
= 250 bajtów
Dwie ważne
literki
B=bajty, KB=kilobajty, MB=megabajty, GB=gigabajty
b=bity, Kb=kilobity, Mb-megabity ....
Reprezentacja informacji w
komputerze
• Pozycyjne i niepozycyjne systemy liczenia
– zapis niepozycyjny (liczby rzymskie)
– zapis pozycyjny - o znaczeniu cyfry w zapisie liczby świadczy jej
pozycja
• Pozycyjne systemy liczenia
– system dziesiętny
– system dwójkowy
– system ósemkowy
– system szesnastkowy
5
2012-11-24
Cechy systemu pozycyjnego
• Stosuje się ograniczoną liczbę cyfr, które
posiadają
kolejne
wartości
0,1,2,...
Pomimo tego, system pozycyjny nie jest w
żaden sposób ograniczony co do wielkości
zapisywanych liczb.
• Każdy system pozycyjny ma przypisaną
pewną wartość charakterystyczną, którą
nazywamy podstawą systemu. Liczba
cyfr jest równa wartości podstawy (np. w
systemie dwójkowym są dwie cyfry {0, 1}.
Cechy systemu pozycyjnego
• Wartość cyfry w zapisie zależy od jej
pozycji, stąd pochodzi nazwa "system
pozycyjny".
Każda
pozycja
ma
przypisaną wagę. Wagi pozycji są równe
kolejnym potęgom podstawy systemu
liczonym od strony prawej.
• Wartość liczby w zapisie pozycyjnym
obliczamy jako sumę iloczynów cyfr przez
wagi swoich pozycji.
6
2012-11-24
System pozycyjny
• Rozważmy pewien system pozycyjny o
dowolnej podstawie p, p > 1. W systemie
tym mamy p cyfr, które oznaczymy literką
c. Zapiszmy pewną liczbę za pomocą n
cyfr: cn-1cn-2...c2c1c0.
waga pozycji pn-1pn-2...p2p1p0
cyfra cn-1cn-2...c2c1c0= c0p0+c1p1+c2p2+...+cn-2pn-2+cn-1pn-1
n −1
cn −1cn − 2 ...c2 c1c0 = ∑ ci p i
i =0
System dwójkowy
p = 2, zbiór cyfr c - {0,1}
Wartość liczby całkowitej w zapisie dwójkowym
obliczamy według wzoru podstawowego:
cn −1cn − 2 ...c1c0 = c0 ⋅ 20 + c1 ⋅ 21 + ... + cn − 2 ⋅ 2 n − 2 + cn −1 ⋅ 2 n −1 =
n −1
= ∑ ci 2i
i =0
n – liczba cyfr, które w
systemie dwójkowym
nazywamy bitami
7
2012-11-24
System dwójkowy - przykład
1011( 2 ) = 1 ⋅ 2 0 + 1 ⋅ 21 + 0 ⋅ 2 2 + 1 ⋅ 23 = 11(10)
Waga pozycji
8 4 2 1
23 22 21 20
1 0 1 1
Cyfra
Liczenie i dodawanie
0+0= 0
0+1= 1
1+0= 1
1 + 1 = 10
Klucz do sukcesu!
1 1 1
0011
+0101
1000
1 1
0011
+0011
0110
8
2012-11-24
L. dziesiętne - > L. dwójkowe
76(10) = ?(2)
76 : 2 = 38, reszta 0
38 : 2 = 19, reszta 0
19 : 2 = 9, reszta 1
9 : 2 = 4, reszta 1
4 : 2 = 2, reszta 0
2 : 2 = 1, reszta 0
1 : 2 = 0, reszta 1
0 : 2 = 0, reszta 0
0 1 0 0 1 1 0 0
System szesnastkowy
p = 16,
c - {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
hex
0
1
2
3
4
5
6
7
bin hex bin
0000 8 1000
0001 9 1001
0010 A 1010
0011 B 1011
0100 C 1100
0101 D 1101
0110 E 1110
0111 F
1111
10,11,12,13,14,15
(dziesiętnie)
Przykład:
7(16) = 0111(2)
A(16) = 1010(2)
9
2012-11-24
System szesnastkowy
1101 0111 1011 0101 0101 1101(2)= ?(16)
1101 0111 1011 0101 0101 1101
↓
↓
↓
↓
↓
↓
D
7
B
5
5
D
110101111011010101011101(2) = D7B55D(16)
A68F27(16) = ?(2)
A
↓
1010
6
↓
0110
8
↓
1000
F
↓
1111
2
↓
0010
7
↓
0111
A68F27(16) = 101001101000111100100111(2)
L.dziesiętne -> L.szesnastkowe
48(10) = ?(16)
48 : 16 = 3, reszta 0
3 : 16 = 0, reszta 3
15268(10) = ?(16)
3 0
15268 : 16 = 954, reszta 4
954 : 16 = 59, reszta 10 (A)
59 : 16 = 3, reszta 11 (B)
3 : 16 = 0, reszta 3
3 B A 4
10
2012-11-24
Liczby ze znakiem i bez znaku
Przetwarzanie w
komputerze oparte na
bitach „0” lub „1”
9(10) = 1001(2)
-10(10) = ?(2)
W systemie dziesiętnym
możemy posługiwać się
znakiem „+” lub „-”
Liczby ze znakiem i bez znaku
• Liczby dwójkowe mogą mieć znak lub nie.
• Wartość ze znakiem jest używana, jeśli
operacja matematyczna jest wykonywana
na liczbie ujemnej.
• Decyduje najwyższy bit:
– wartość 1 oznacza liczbę ujemną
– wartość 0 oznacza liczbę dodatnią
11
2012-11-24
Liczby ze znakiem i bez znaku
Dwa główne sposoby kodowania liczb ze
znakiem:
• kod ZNAK-MODUŁ
• kod Uzupełnienia dwójkowego (U2)
Uzupełnienie dwójkowe
Należy rozpatrzyć dwa przypadki:
1. Liczba jest dodatnia - znajdujemy jej
przedstawienie binarne i uzupełniamy zerami
do przyjętego formatu.
Przykład:
Zapisać wartość 3(10) w kodzie U2 – format 4-bitowy:
3(10) = 11(2)
Ponieważ format ma 4 bity, to dopisujemy na początku
dwie cyfry 0 i otrzymujemy liczbę dodatnią w kodzie
U2:
3(10) = 0011(U2)
12
2012-11-24
Uzupełnienie dwójkowe
2. Liczba jest ujemna (sposób I). W tym
przypadku bit znaku (pozycja o wadze -2n-1)
musi mieć wartość 1. Należy znaleźć taką
wartość, która dodana do wagi bitu znaku da
nam liczbę kodowaną. Wartość tę kodujemy
na pozostałych bitach.
Przykład:
Zapisać wartość -3(10) w 4-bitowym kodzie U2:
Bit znaku ma wartość -23 = -8, czyli aby otrzymać -3
należy dodać liczbę 5, którą kodujemy na pozostałych
bitach:
-8 + 5 = -3
1 1 0 1(U2) = -3(10)
Uzupełnienie dwójkowe
Liczba jest ujemna (sposób II). Można również
znaleźć przedstawienie modułu tej liczby, a następnie
wyliczyć wartość przeciwną w kodzie U2:
2.
•
•
Zamienić wszystkie bity liczby na przeciwne, tzn. 1 na 0 i 0 na 1
Do tak otrzymanej liczby dodać wartość 1
Przykład:
Zapisać wartość -3(10) w 4-bitowym kodzie U2:
3(10)= 11(2)
Uzupełniamy do 4 bitów: 3(10)= 0011(U2)
Zamieniamy bity:
1100(U2)
+
1
Otrzymujemy:
1101(U2) = -3(10)
13
2012-11-24
Przykład
Konwersja liczby dwójkowej ze znakiem na
liczbę dziesiętną:
11111111(2)
Odwrócenie bitów: 00000000
+
1
00000001
Wartość bez
znaku = 1(10)
Ale bit znaku ustawiony na 1,
czyli liczba ujemna: -1(10)
11111111(2) = -1(10)
Przykład
Konwersja liczby dwójkowej ze znakiem na
liczbę dziesiętną:
11101100(2)
Odwrócenie bitów: 00010011
+
1
16 8 4 2 1
00010100
Ale bit znaku ustawiony na 1,
czyli liczba ujemna: -20(10)
Wartość bez
znaku = 20(10)
11101100(2) = -20(10)
14
2012-11-24
Przykład
Konwersja liczby szesnastkowej (9Bh = 9B(16)) ze
znakiem na liczbę dziesiętną:
9Bh
10011011(2)
Odwrócenie bitów:
01100100 = 64h
+
1
64 32 16 8 4 2 1
01100101 = 65h
Ale bit znaku ustawiony na 1,
czyli liczba ujemna: -101(10)
Wartość bez
znaku = 101(10)
Przykład
Uzupełnienie dwójkowe liczby szesnastkowej
(9Bh):
Uzupełnienie jedynkowe: 15 – 9 = 6
15 – B = 4
Otrzymaliśmy: 64h
Uzupełnienie dwójkowe, czyli dodajemy 1 do
wyniku:
64h + 1= 65h
15
2012-11-24
Przykład
Uzupełnienie dwójkowe liczby szesnastkowej
(6A295CD4h):
Uzupełnienie jedynkowe:
15 – 6 = 9
...
15 – 4 = B
Otrzymaliśmy: 95D6A32Bh
Uzupełnienie dwójkowe, czyli dodajemy 1 do wyniku:
95D6A32Bh + 1 = 95D6A32Ch
Odejmowanie liczb dwójkowych
• Liczbę odejmowaną należy przekonwertować na
postać uzupełnienia dwójkowego.
Przykład:
00011100b – 00010000b = ?b
W systemie dziesiętnym:
28 – 16 = 12
28(10)
00011100
+ -16(10)
+ 11110000
12(10)
00001100
Uzupełnienie dwójkowe
16
2012-11-24
Odejmowanie liczb szesnastkowych
• bez konieczności przekształcania na format
uzupełnienia dwójkowego
Przykład:
-1
3 E 6 2h
W systemie szesnastkowym
pożyczka oznacza użycie
wartości 16!
- 0 0 0 9h
3 E 5 9h
Kod BCD
• ang. Binary Coded Decimal
(Liczby
dziesiętne
zakodowane binarnie).
• W systemie tym nie koduje
się wartości binarnej liczby,
tylko jej poszczególne cyfry
dziesiętne.
Każdą
cyfrę
dziesiętną przedstawia się
za pomocą 4 bitów według
tabeli kodu BCD.
cyfra
0
1
2
3
4
5
6
7
8
9
BCD
0000(2)
0001(2)
0010(2)
0011(2)
0100(2)
0101(2)
0110(2)
0111(2)
1000(2)
1001(2)
17
2012-11-24
Kod BCD
Przykład:
9234(10) = 1001 0010 0011 0100 =
1001001000110100(BCD)
10000110000001110001(BCD) =
=1000 0110 0000 0111 0001 = 86071(10)
Liczba zapisana w kodzie BCD po zamianie na
system szesnastkowy da się bezpośrednio
odczytać jako liczba dziesiętna. Jest to bardzo
miła cecha liczb BCD, z której często korzystają
programiści pracujący z takimi liczbami.
Reprezentacja informacji w
komputerze
• ASCII (American Standard Code for Information
Interchange) – kod przyporządkowujący liczby z zakresu
0-127 literom alfabetu angielskiego, cyfrom, znakom
przestankowym, symbolom i poleceniom sterującym.
• Z racji tego, że kod ASCII jest 7-bitowy, a większość
komputerów operuje na 8-bitowych bajtach, powstało
wiele
różnych
rozszerzeń
kodu
ASCII
zagospodarowujących ósmy bit (np. norma ISO 8859).
18
2012-11-24
ASCII
Dec
Hex
Znak
Dec
Hex
Znak
Dec
Hex
Znak
32
20
Spacja
64
40
@
96
60
`
33
21
!
65
41
A
97
61
a
34
22
"
66
42
B
98
62
b
35
23
#
67
43
C
99
63
c
36
24
$
68
44
D
100
64
d
37
25
%
69
45
E
101
65
e
38
26
&
70
46
F
102
66
f
39
27
'
71
47
G
103
67
g
28
(
72
48
H
104
68
h
29
)
73
49
I
105
69
i
40
41
Reprezentacja informacji w
komputerze
• Unicode – zestaw znaków mający w
zamierzeniu obejmować wszystkie pisma
używane na świecie. Definiują go dwa
standardy: Unicode oraz ISO 10646. Znaki
obu standardów są identyczne. Różnią się
m.in. określeniem sposobu składu.
• Standard Unicode nie obejmuje sposobów
kodowania znaków. Jest kilka metod
kodowania:
• UCS-4 (Universal Character Set)
• UTF-8 (Unicode Transformation Format)
19
2012-11-24
Dziękuję za uwagę
20

Podobne dokumenty