Ππογπαμμαηιζμόρ Υπολογιζηών Αναπαπάζηαζη Πληποθοπίαρ Κ. Βαζιλάκηρ, ΣΤΔΦ, ΤΔΙ Κπήηηρ
Γεδομένα και πληποθοπία Γεδομένα είλαη έλα ζύλνιν δηαθξηηώλ ζηνηρείσλ ζρεηηθά κε έλα ζπκβάλ ή κία δηαδηθαζία ρσξίο θάπνηα άκεζε ζεκαζία. Τα δεδνκέλα είλαη νπζηαζηηθά νληόηεηεο θαη ηδηόηεηεο πνπ πξνθύπηνπλ από παξαηεξήζεηο, θαηαγξαθέο ή ππνινγηζκνύο θαη κπνξεί λα είλαη ραξαθηήξεο, θείκελν, αξηζκνί, ζύκβνια, ζρήκαηα, εηθόλεο θιπ θαη γεληθόηεξα ηδηόηεηεο πνπ πξνθύπηνπλ από παξαηεξήζεηο, πεηξακαηηζκνύο ή ππνινγηζκνύο. Ψηθιακά δεδομένα (data) είλαη δεδνκέλα πνπ έρνπλ αλαπαξαζηαζεί κε θάπνην ηξόπν (θσδηθνπνίεζε), είλαη απνζεθεπκέλα ζε ππνινγηζηή θαη είλαη δπλαηόλ λα επεμεξγαζηνύλ. Τα ςεθηαθά δεδνκέλα απνζεθεύνληαη ζε αξρεία δει. ζπιινγέο δεδνκέλσλ πνπ έρνπλ θάπνηα ζρέζε κεηαμύ ηνπο (θείκελν, εγγξαθέο, βάζεηο δεδνκέλσλ θιπ). Η πληποθοπία παξάγεηαη από ηελ επεμεξγαζία ή/θαη ηελ εξκελεία ησλ ςεθηαθώλ δεδνκέλσλ θαη καο βνεζά ζηε ιήςε απνθάζεσλ. Οπζηαζηηθά πξόθεηηαη γηα επεμεξγαζκέλα δεδνκέλα ζηα νπνία έρεη δνζεί θάπνην λόεκα. Η επεμεξγαζία δεδνκέλσλ αθνξά ζπλήζσο ζε ζπιινγή, αλαδήηεζε, νκαδνπνίεζε, ηαμηλόκεζε, ζύγθξηζε, επηινγή δεδνκέλσλ θαη ζε εθηέιεζε αξηζκεηηθώλ/ινγηθώλ ππνινγηζκώλ. 2
Γεδομένα & πληποθοπία (παπάδειγμα) Έζησ νη αξηζκνί 8, 5, 7, 6, 7 Απηνί νη αξηζκνί 8, 5, 7, 6, 7 ζαλ δεδνκέλα δελ έρνπλ θάπνην λόεκα. Αλ πξόθεηηαη γηα βαζκνύο εξγαζηώλ ελόο θνηηεηή ζε έλα κάζεκα απνθηνύλ ζεκαζία, δηόηη ν κέζνο όξνο απηώλ κπνξεί λα καο νδεγήζεη ζηελ απόθαζε αλ ν θνηηεηήο πεξλά ην κάζεκα ή όρη. Αλ όιεο νη εξγαζίεο κεηξνύλ ην ίδην ηόηε ν κέζνο όξνο ηεο βαζκνινγίαο καο δίλεη ηε πιεξνθνξία πνπ ζέινπκε (πεξλά ή όρη ην κάζεκα). Ο ππνινγηζκόο ηνπ κέζνπ όξνπ είλαη ε επεμεξγαζία δεδνκέλσλ. Αλ ν κέζνο όξνο είλαη 5 ηόηε έρνπκε ηε πιεξνθνξία όηη ν θνηηεηήο πεξλάεη ην κάζεκα. Γεδομένα + επεξεπγαζία / επμηνεία --> πληποθοπία 3
Η αναπαπάζηαζη ζηοςρ ςπολογιζηέρ Οη ππνινγηζηέο είλαη ζε ζέζε λα αλαγλσξίδνπλ 2 δηαθξηηέο θαηαζηάζεηο (αλ πεξλά ή όρη ξεύκα). Τν bit είλαη κηθξόηεξε κνλάδα κέηξεζεο θαη εθθξάδεη απηέο ηηο 2 δηαθξηηέο θαηαζηάζεηο (ηηκέο 0 θαη 1). Τα πάληα κέζα ζ έλα ππνινγηζηηθό ζύζηεκα θσδηθνπνηνύληαη κε απηέο ηηο 2 θαηαζηάζεηο (0/1): νη εληνιέο πνπ εθηεινύληαη θαη ηα δεδνκέλα πνπ επεμεξγάδνληαη (θείκελν, αξηζκνί, αλαινγηθό ζήκα, εηθόλεο, video θιπ). Σπλεπώο νη θσδηθνπνηήζεηο βαζίδνληαη ζην δπαδηθό ζύζηεκα θαη ζπληζηνύλ ηξόπνπο αλαπαξάζηαζεο ησλ δεδνκέλσλ ζηνπο ππνινγηζηέο. Οη θσδηθνπνηήζεηο ιακβάλνπλ ππόςε ηνπο ην είδνο ησλ δεδνκέλσλ πνπ πξόθεηηαη λα αλαπαξαζηαζνύλ. Αθηεξώλνπλ ζπγθεθξηκέλν αξηζκό από bits γηα θάζε ζηνηρείν ησλ δεδνκέλσλ πνπ πξόθεηηαη λ αλαπαξαζηήζνπλ. 4
Πόζα bits σπειάζομαι; Γηα ηα ζεκεία ηνπ νξίδνληα (βνξάο, λόηνο, αλαηνιή, δύζε); Απαηηνύληαη 4 δηαθξηηέο θαηαζηάζεηο. κε 1 bit έρνπκε 2 δηαθξηηέο θαηαζηάζεηο: 0 θαη 1 δελ επαξθνύλ! κε 2 bits έρνπκε 4 δηαθνξεηηθέο θαηαζηάζεηο επαξθνύλ! Απηέο είλαη: 00, 01,10 θαη 11. Γηα ηα 24 θεθαιαία γξάκκαηα ηεο αιθαβήηνπ; κε 1 bit έρνπκε 2 δηαθνξεηηθέο θαηαζηάζεηο δελ επαξθνύλ! κε 2 bits έρνπκε 4 δηαθνξεηηθέο θαηαζηάζεηο δελ επαξθνύλ! κε 3 bits έρνπκε 8 δηαθνξεηηθέο θαηαζηάζεηο δελ επαξθνύλ! κε 4 bits έρνπκε 16 δηαθνξεηηθέο θαηαζηάζεηο δελ επαξθνύλ! κε 5 bits έρνπκε 32 δηαθνξεηηθέο θαηαζηάζεηο επαξθνύλ γηα ηα 24 γξάκκαηα (πεξηζζεύνπλ 8). Α: 00000, Β:00001, C:00010,., X:10110, Y:10111, Z:11000 Γεληθόηεξα, κε k bits κπνξνύκε λ αλαπαξαζηήζνπκε Ν=2 k δηαθνξεηηθέο θαηαζηάζεηο (k=log 2 N). Τν ηειεπηαίν δεμηά ςεθίν είλαη ην ιηγόηεξν ζεκαληηθό ςεθίν (Least Significant Bit - LSB) ηεο δπαδηθήο αλαπαξάζηαζεο Τν πξώην αξηζηεξά ςεθίν είλαη ην πεξηζζόηεξν ζεκαληηθό ςεθίν (Most Significant Bit MSB) ηεο δπαδηθήο αλαπαξάζηαζεο 5
Αναπαπάζηαζη κειμένος Αθνξά ζε ραξαθηήξεο πνπ κπνξνύλ λα εθηππσζνύλ: A-Z, a-z, 0-9,!, @, #, $, %, ^, &, *, (, ), _, -, +, /, κλπ Δπίζεο αθνξά θαη ζε θάπνηνπο ραξαθηήξεο ειέγρνπ πνπ δελ εθηππώλνληαη: αλλαγή γραμμής, <enter>, <backspace> κλπ Σε θάζε ραξαθηήξα αληηζηνηρεί έλαο ζπγθεθξηκέλνο ζπλδπαζκόο από bits (δει. έλαο δπαδηθόο αξηζκόο). Σε θάζε θσδηθνπνίεζε ρξεζηκνπνηείηαη έλαο ζπγθεθξηκέλνο αξηζκόο από bits, αλάινγα κε ην αξηζκό ησλ ραξαθηήξσλ πνπ πξόθεηηαη λα αλαπαξαζηαζνύλ. Υπάξρνπλ πνιιέο αλαπαξαζηάζεηο ραξαθηήξσλ θεηκέλνπ. Οη πην γλσζηέο: ASCII, ISO & UNICODE 6
Κωδικοποίηζη καηά ASCII ASCII (American standard Code for Information Interchange). Πξόθεηηαη γηα ηε πξώηε θνηλή αλαπαξάζηαζε ραξαθηήξσλ θεηκέλνπ γηα όινπο ηνπο θαηαζθεπαζηέο ππνινγηζηώλ. Φξεζηκνπνηεί 7 bits γηα ηελ θσδηθνπνίεζε θαη έλα όγδνν bit γηα ιόγνπο έιεγρνπ ζηε κεηάδνζε ησλ bits. Σπλεπώο, ππάξρνπλ 128 (2 7 ) δηαθνξεηηθνί ζπλδπαζκνί ησλ 7 bits. Αξρηθά πεξηειάκβαλε κόλν ην ιαηηληθό αιθάβεην. Oη ππόινηπνη 128 (2 8 =256 ζπλνιηθά) ζπλδπαζκνί ρξεζηκνπνηήζεθαλ αξγόηεξα γηα εηδηθνύο γξαθηθνύο ραξαθηήξεο ή γηα ραξαθηήξεο άιισλ αιθάβεησλ από ηνλ ISO (International Standardization Organization - Γηεζλήο Οξγαληζκόο Τππνπνίεζεο). Φξεζηκνπνηήζεθε γηα πξώηε θνξά ην 1963 θαη επξέσο από ην 1968 θαη κεηά. Έρεη επηθξαηήζεη ζαλ νξνινγία πεξηγξαθήο αξρείσλ θεηκέλνπ. 7
Κωδικοποιήζειρ ISO και UNICODE To ISO 8859 είλαη κηα ζεηξά από 8-bits ηππνπνηήζεηο ραξαθηήξσλ (8859-1, 8859-2,θιπ). Η θσδηθνπνίεζε ASCII αλαπαξηζηά ηθαλνπνηεηηθά ηνπο ιαηηληθνύο ραξαθηήξεο ηεο αγγιηθήο γιώζζαο, αιιά δελ ζπκπεξηιακβάλεη εζληθνύο ραξαθηήξεο άιισλ ρσξώλ. Τν ISO 8859 είλαη κηα 8-bit επέθηαζε ηνπ ASCΙΙ πνπ ρξεζηκνπνηεί θαη ηα 8 bits. Γηα ηνπο ειιεληθνύο ραξαθηήξεο (κνλνηνληθό ζύζηεκα) ππάξρεη ην ISO 8859-7. H θσδηθνπνίεζε UNICODE ρξεζηκνπνηεί 8, 16 ή θαη 32 bits γηα ηελ αλαπαξάζηαζε ραξαθηήξσλ (2 8, 2 16 θαη 2 32 δηαθνξεηηθνύο ραξαθηήξεο). Η θσδηθνπνίεζε UNICODE πεξηιακβάλεη 2 θαηεγνξίεο αλαπαξαζηάζεσλ: UTF (Unicode Transformation Format) θαη UCS (Universal Character Set) 8
Κωδικοποίηζη ISO 8859 Bits b8b7b6b5 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 b4b3b2b1 HEX 0 1 2 3 4 5 6 7 8 9 A B C D Ε F 0000 0 SP 0 @ P ` p NBSP Π ή π 0001 1! 1 A Q a q ` ± Ύ Ρ α λ 0010 2 " 2 B R b r ² Ώ ί μ 0011 3 # 3 C S c s ³ Γ ΰ ζ 0100 4 $ 4 D T d t ΐ Σ δ η 0101 5 % 5 E U e u Α Τ ε ν 0110 6 & 6 F V f v Ά Β Φ α θ 0111 7 ' 7 G W g w Γ Υ β ξ 1000 8 ( 8 H X h x Θ Φ γ ο 1001 9 ) 9 I Y I y Έ Δ Χ δ π 1010 A * : J Z j z Ή Κ Ψ ε ρ 1011 B + ; K [ k { Λ Ω ζ ς 1100 C, < L \ l Ί Μ Ϊ η σ 1101 D - = M ] m } SHY Ν Ϋ θ τ 1110 E. > N ^ n - Ξ ά ι υ 1111 F /? O - o DEL Ό Ο έ κ 9
Αναπαπάζηαζη ακεπαίων απιθμών Όινη νη θπζηθνί κε πξόζεκν θαη ην κεδέλ Δύξνο: - 0. + Φπζηθά δελ ππάξρεη ππνινγηζηηθό ζύζηεκα πνπ κπνξεί λα αλαπαξαζηήζεη όινπο ηνπο αθεξαίνπο. Όπσο έρνπκε δεη πξηλ, ν αξηζκόο ησλ bits πνπ ρξεζηκνπνηείηαη γηα ηελ αλαπαξάζηαζε ησλ αθεξαίσλ θαζνξίδεη θαη ην εύξνο ηνπο (κηθξόηεξνο κεγαιύηεξνο). Υπάξρνπλ δηαθνξεηηθέο αλαπαξαζηάζεηο γηα: Αθεξαίνπο ρσξίο πξόζεκν (κε πξνζεκαζκέλνη: από 0 έσο ). Αθεξαίνπο κε πξόζεκν (πξνζεκαζκέλνη: από - έσο + ). 10
Μη πποζημαζμένοι ακέπαιοι Ο αξηζκόο Ν ησλ bits πνπ ρξεζηκνπνηείηαη γηα ηελ αλαπαξάζηαζε θαζνξίδεη θαη ηνλ κεγαιύηεξν αξηζκό πνπ κπνξεί λα αλαπαξαζηαζεί. Παξαδείγκαηα: 4 bits: ν κεγαιύηεξνο αθέξαηνο είλαη 1111 2 =15 10 (2 4-1). Δύξνο: από 0 έσο 15. 8 bits: ν κεγαιύηεξνο αθέξαηνο είλαη 1111111 2 =255 10 =2 8-1. Δύξνο: από 0 έσο 255. Γεληθά, γηα Ν bits ην εύξνο ησλ ηηκώλ πνπ έρνπκε γηα αθεξαίνπο ρσξίο πξόζεκν είλαη: από 0 έως 2 Ν -1. Σπλεπώο, γηα λ απνζεθεπηεί ζε ππνινγηζηή έλαο κε πξνζεκαζκέλνο αθέξαηνο αξηζκόο, απιά κεηαηξέπεηαη ζην δπαδηθό ζύζηεκα. 11
Παπαδείγμαηα μη πποζημαζμένων Έζησ Ν ν αξηζκόο ησλ bits πνπ ρξεζηκνπνηείηαη γηα ηελ αλαπαξάζηαζε: Αλ Ν=8, ν αξηζκόο 12 10 (1100 2 ) απνζεθεύεηαη σο 00001100. Αλ Ν=16, ν αξηζκόο 12 10 (1100 2 ) απνζεθεύεηαη σο 0000000000001100. Αλ Ν=8, ν αξηζκόο 260 10 (100000100 2 ) δελ κπνξεί λ απνζεθεπηεί. Αλ πξνζπαζήζνπκε λα ηνλ απνζεθεύζνπκε ζε 8 bits ηόηε έρνπκε ην θαηλόκελν ηεο ςπεπσείλιζηρ (overflow). Αλ Ν=16, ν αξηζκόο 260 10 (100000100 2 ) απνζεθεύεηαη σο 0000000100000100. Αλ Ν=32, ν αξηζκόο 260 10 (100000100 2 ) απνζεθεύεηαη σο 00000000000000000000000100000100. 12
Πποζημαζμένοι ακέπαιοι Απαηηείηαη έλδεημε γηα ην πξόζεκν ηνπ αθεξαίνπ. Αθηεξώλεηαη ινηπόλ έλα bit γηα ηελ έλδεημε ηνπ πξόζεκνπ: 0 --> θετικός, 1 --> αρνητικός Τα ππόινηπα bits ρξεζηκνπνηνύληαη γηα ηε παξάζηαζε ηνπ κέηξνπ ηνπ αθεξαίνπ (απόιπηε ηηκή). Πξνθαλώο κε έλα bit ιηγόηεξν (απηό ηνπ πξόζεκνπ) ην κέηξν ησλ αξηζκώλ ππνδηπιαζηάδεηαη. Η αλαπαξάζηαζε ησλ ζεηηθώλ αθεξαίσλ είλαη ε ίδηα ζε όιεο ηηο θσδηθνπνηήζεηο πνπ ζα εμεηάζνπκε ζηελ ζπλέρεηα. Αιιάμεη κόλν ν ηξόπνο αλαπαξάζηαζεο ησλ αξλεηηθώλ αξηζκώλ. Θα εμεηαζηνύλ 3 θσδηθνπνηήζεηο αξλεηηθώλ αξηζκώλ: Πξόζεκν θαη κέηξν Σπκπιήξσκα σο πξνο 1 Σπκπιήξσκα σο πξνο 2 13
Κωδικοποίηζη Ππόζημος-Μέηπος Τν ηειεπηαίν αξηζηεξά bit (Most Significant Bit MSB) ρξεζηκνπνηείηαη γηα ηελ έλδεημε ηνπ πξόζεκνπ. Τα ελαπνκείλαληα ςεθία ρξεζηκνπνηνύληαη γηα ην κέηξν ηνπ αξηζκνύ: +12 --> 00001100 (8 bits αλαπαξάζηαζε) -12 --> 10001100 (8 bits αλαπαξάζηαζε) +260 --> 0000000100000100 (16 bits αλαπαξάζηαζε) -260 --> 1000000100000100 (16 bits αλαπαξάζηαζε Ο κέγηζηνο πξνζεκαζκέλνο αθέξαηνο πνπ κπνξεί λα παξαζηαζεί κε Ν bits θαη θσδηθνπνίεζε πξόζεκνπ-κέηξνπ είλαη: 011111.1111 2 = +(2 Ν-1-1) 10 Ο ειάρηζηνο πξνζεκαζκέλνο αθέξαηνο πνπ κπνξεί λα παξαζηαζεί κε Ν bits θαη θσδηθνπνίεζε πξόζεκνπ-κέηξνπ είλαη: 111111.1111 2 = -(2 Ν-1-1) 10 Γεληθά, κε Ν bits, ην εύξνο ηηκώλ πνπ έρνπκε κε θσδηθνπνίεζε πξόζεκνπκέηξνπ είλαη: από -2 (N-1) - 1 έσο +2 (Ν-1) - 1 Παξαδείγκαηα: Με 8 bits ην εύξνο ηηκώλ είλαη: -2 7-1 έσο +2 7-1 (-127 έσο +127). Με 16 bits ην εύξνο ηηκώλ είλαη: -2 15-1 έσο +2 15-1 (-32767 έσο +32767) Έρνπκε όκσο 2 παξαζηάζεηο γηα ην κεδέλ. 000 000 (+0) θαη 100 000 (-0) 14
Κωδικοποίηζη ζςμπληπώμαηορ ωρ ππορ 1 Καη εδώ ην MSB ρξεζηκνπνηείηαη γηα ηελ έλδεημε ηνπ πξόζεκνπ (0 -> ζεηηθόο, 1-> αξλεηηθόο). Γηα ηε παξάζηαζε ησλ αξλεηηθώλ αθεξαίσλ ρξεζηκνπνηνύκε ην ζπκπιήξσκα ηεο δπαδηθήο παξάζηαζεο ηνπ αξηζκνύ σο πξνο 1. Τν ζπκπιήξσκα σο πξνο 1 ελόο δπαδηθνύ αξηζκνύ βξίζθεηαη εύθνια αλ αληηθαηαζηαζνύλ όια ηα 1 ηνπ αξηζκνύ κε 0 θαη όια ηα 0 κε 1. Παξάδεηγκα: ν αξηζκόο +12 10 (1100 2 ) ζα παξαζηαζεί ζε 8 bits σο: 00001100 (ίδηα κε ηελ θσδηθνπνίεζε πξόζεκνπ-κέηξνπ). ν αξηζκόο -12 10 ζα παξαζηαζεί σο: 11110011 Μέγηζηνο ζεηηθόο: 01111 1111 = +(2 (Ν-1) - 1) 10 Διάρηζηνο αξλεηηθόο: 100000 0000 = -(2 (Ν-1) - 1) 10 Καη πάιη ην κεδέλ απνζεθεύεηαη κε 2 ηξόπνπο: 000000..00000 θαη 11111..11111 (ζπκπιήξσκα ηνπ 000..000 σο πξνο 1) 15
Κωδικοποίηζη ζςμπληπώμαηορ ωρ ππορ 2 Καη πάιη ην MSB ρξεζηκνπνηείηαη γηα ηελ έλδεημε ηνπ πξόζεκνπ (0 -> ζεηηθόο, 1->αξλεηηθόο). Γηα ηε παξάζηαζε ησλ αξλεηηθώλ αθεξαίσλ ρξεζηκνπνηνύκε ην ζπκπιήξσκα ηεο δπαδηθήο παξάζηαζεο ηνπ αξηζκνύ σο πξνο 2. Τν ζπκπιήξσκα σο πξνο 2 ελόο δπαδηθνύ αξηζκνύ βξίζθεηαη εύθνια αλ αληηθαηαζηαζνύλ όια ηα 1 ηνπ αξηζκνύ κε 0 θαη όια ηα 0 κε 1 θαη ζηε ζπλέρεηα πξνζζέζνπκε 1. Γειαδή αλ πξνζζέζνπκε 1 ζην ζπκπιήξσκα ηνπ. Παξάδεηγκα: ν αξηζκόο +12 10 (1100 2 ) ζα παξαζηαζεί ζε 8 bits σο: 00001100 (ίδηα κε ηελ θσδηθνπνίεζε πξόζεκνπ-κέηξνπ). ν αξηζκόο -12 10 ζα παξαζηαζεί σο: 11110011+1= 11110100 Έρνπκε έλα (1) κόλν κεδέλ: 0000 000 Τν εύξνο ηηκώλ πνπ έρνπκε κε θσδηθνπνίεζε ζπκπιεξώκαηνο σο πξνο 2: από -2 (N-1) έσο +2 (Ν-1) - 1 Πξόθεηηαη γηα ηνλ ηξόπν αλαπαξάζηαζεο αθεξαίσλ κε πξόζεκν. 16
Παπάδειγμα παπάζηαζηρ με 4 bits Π-Μ Σςμπ. - 1 Σςμπ. - 2 7 0111 0111 0111 6 0110 0110 0110 5 0101 0101 0101 4 0100 0100 0100 3 0011 0011 0011 2 0010 0010 0010 1 0001 0001 0001 0 0000 0000 1000 1111 0000-1 1001 1110 1111-2 1010 1101 1110-3 1011 1100 1101-4 1100 1011 1100-5 1101 1010 1011-6 1110 1001 1010-7 1111 1000 1001-8 - - 1000 17
Παπάδειγμα παπάζηαζηρ με 8 bits 128 Π-Μ Σςμπ. - 1 Σςμπ. - 2 127 01111111 01111111 01111111 126 01111110 01111110 01111110 2 00000010 00000010 00000010 1 00000001 00000001 00000001 0 00000000 10000000 00000000 11111111 00000000-1 10000001 11111110 11111111-2 10000010 11111101 11111110-126 11111110 10000001 10000010-127 11111111 10000000 10000001-128 - - 10000000 18