- Γλώσσα του ηλεκτρονικού υπολογιστή: 0 και 1
- Δυαδικά ψηφία - bits (binary digits).
- 1: ύπαρξη ψηλότερης τάσης ρεύματος, 0: χαμηλότερη τάση ρεύματος.
- bit: η μικρότερη ποσότητα πληροφορίας που μπορεί να διαχειριστεί ο ηλεκτρονικός υπολογιστής.
- 8 bits = ψηφιολέξη (byte) - Η στοιχειώδης μονάδα αποθήκευσης
1 χαρακτήρας → 1 byte (8 bit)
Με 8 δυαδικά ψηφία μπορούν να δημιουργηθούν 28=256 χαρακτήρες
Ο κώδικας ASCII (American Standard Code for Information Interchange) κωδικοποιεί τον κάθε χαρακτήρα σε 8 bit (δηλαδή σε 1 byte)
Αναπαράσταση Αριθμών με Δυαδικά Ψηφία
Για την αναπαράσταση ακέραιων αριθμών συνήθως χρησιμοποιούνται 8, 16, 32 ή 64 bit (1, 2, 4 ή 8 byte αντίστοιχα). Με 8 bit μπορούν να αναπαρασταθούν οι ακέραιοι αριθμοί από 0 μέχρι 255(=28-1)
Συνήθως ένα bit χρησιμοποιείται για να δηλώνει το πρόσημο του αριθμού (0=θετικός, 1=αρνητικός), με αποτέλεσμα να μπορούν να αναπαρασταθούν μόνο οι ακέραιοι αριθμοί από το -27=-128 μέχρι το 27-1=+127. (-128~127= 256 αριθμοί)
Με 16 bit: -215=-32768 μέχρι 215-1= +32767
Με 32 bit: -2147483648 μέχρι +2147483647
Με 64 bit: -9223372036854775808 μέχρι 9223372036854775807.
Στις περισσότερες περιπτώσεις σήμερα χρησιμοποιούνται 32 bit
Αναπαράσταση πραγματικών αριθμών (παράδειγμα)
Θέλουμε να αναπαραστήσουμε τον αριθμό 12.3456
Ο αριθμός αυτός μπορεί να γραφεί ως 123456 * 10-4
Δηλαδή ως ένας ακέραιος αριθμός (x) επί κάποια δύναμη του 10 με ακέραιο εκθέτη (d). Τόσο το x όσο και το d μπορούν να αναπαρασταθούν από τον ηλεκτρονικό υπολογιστή ως ακέραιοι αριθμοί με περιορισμένο αριθμό bit, ανάλογα με τις ανάγκες του προβλήματος (x * 10-d)
Στον ηλεκτρονικό υπολογιστή ο πραγματικός αριθμός εκφράζεται ως ένας ακέραιος αριθμός x επί κάποια δύναμη του 2 με ακέραιο εκθέτη d
Αναπαράσταση Χαρακτήρων με Δεκαεξαδικά Ψηφία
Το δεκαεξαδικό σύστημα χρησιμοποιεί 16 ψηφία. Για τα πρώτα δέκα χρησιμοποιούνται τα ψηφία 0 - 9 του δεκαδικού συστήματος. Για την αναπαράσταση των τιμών από το 10 έως και το 15, χρησιμοποιεί τα πρώτα 6 κεφαλαία γράμματα του λατινικού αλφαβήτου: A, B, C, D, E και F.
(23Β)16 = 2 x 256 + 3 x 16 + 11 x 1 = 571
(ABCD)16= 10 x 4096 + 11 x 256 + 12 x 16 + 13 x 1 =43981
Διεθνές Πρότυπο Unicode
Επιτρέπει την κωδικοποίηση όλων των συστημάτων γραφής, ώστε να επιτυγχάνεται η αποθήκευση, στη μνήμη ενός υπολογιστή, γραπτού κειμένου σε όλες τις γλώσσες (συμπεριλαμβανομένων και συμβόλων επιστημών, όπως μαθηματικά, φυσική κ.λπ.)
Κωδικοποιεί οποιονδήποτε χαρακτήρα με μοναδικό τρόπο, επιτρέποντας να υπάρχουν στο ίδιο κείμενο χαρακτήρες από διάφορες γλώσσες, το οποίο εξασφαλίζει ότι όλοι οι χαρακτήρες μπορούν να υποστηρίζονται από όλα τα υπολογιστικά συστήματα που το υιοθετούν.
Επιτρέπει στο ανάλογο λογισμικό (φυλλομετρητής, επεξεργαστής κειμένου) να επιλέξει αυτό την οπτική αναπαράσταση (στυλ, μέγεθος, γραμματοσειρά) των χαρακτήρων.
Η κοινοπραξία Unicode, που αναπτύσσει το πρότυπο, επιτρέπει σε οποιαδήποτε οργάνωση να γίνει μέλος της εφόσον πληρώσει συνδρομή. Στα μέλη της συμπεριλαμβάνονται σχεδόν όλες οι μεγάλες εταιρείες λογισμικού και υλικού όπως οι Apple, Microsoft, IBM, Xerox, HP, Adobe Systems κ.α.
Πρώτη δημοσίευση του προτύπου Unicode: 1991.
Συνεχίζει να αναπτύσσει πρότυπα βασισμένα στην αρχική αυτή εργασία.
Η κοινοπραξία Unicode αναπτύχθηκε σε συνδυασμό με τον Διεθνή Οργανισμό Τυποποίησης ISO, και το πρότυπό της μοιράζεται το σύνολο χαρακτήρων της με το πρότυπο ISO/IEC 10646. Το Unicode και το ISO/IEC 10646 είναι ισοδύναμα ως κωδικοποιήσεις χαρακτήρων, αλλά το Unicode περιέχει πολύ περισσότερες πληροφορίες για προγραμματιστές. Η πιο πρόσφατη έκδοση (Unicode 9.0) περιλαμβάνει 128,172 χαρακτήρες και 72 νέα emoji.
Κάθε χαρακτήρας έχει τη δική του μοναδική αναπαράσταση ως μιας σειράς από bit και αναφέρεται ως κωδικό σημείο (codepoint).
Συχνά ο τρόπος αναφοράς εκφράζεται με τη μορφή U+xxxx, όπου τα xxxx αναπαριστούν τη σειρά από bit ως δεκαεξαδικά ψηφία.
Για παράδειγμα, το πεζό λατινικό γράμμα b εκφράζεται ως U+0062 ενώ το κεφαλαίο ελληνικό γράμμα Ω εκφράζεται ως U+03A9.
Συνήθως αναγράφονται 4 δεκαεξαδικά ψηφία, τα οποία αντιστοιχούν με 16 bit (υπάρχουν εξαιρέσεις για κάποιες κατηγορίες χαρακτήρων με 5 δεκαεξαδικά ψηφία.) Π.χ. το μουσικό σύμβολο ? το οποίο εκφράζεται ως U+1D122
Αποθήκευση, μεταφορά και επεξεργασία
ASCII: 8-bit, 256 χαρακτήρες μόνο
Unicode: 16 bit - Αναπαράσταση περισσότερων χαρακτήρων, ομως:
- Προβλήματα συμβατότητας με δεδομένα που έχουν συλλεγεί για χρόνια και είναι κωδικοποιημένα σε ASCII.
- Σημαντική αύξηση των απαιτήσεων για αποθήκευση χαρακτήρων κωδικοποιημένων σε Unicode, αφού χρειάζονται τουλάχιστον 16 bit, αντί 8 bit του ASCII (ιδιαίτερα εάν το κείμενο αποτελείται κατά κύριο λόγο από λατινικούς χαρακτήρες, όπου τα 8 bit σε ASCII θα ήταν καλύτερη επιλογή, αφού εξοικονομεί τον μισό χώρο για αποθήκευση των πληροφοριών).
Οικογένειες προτύπων
Το σύστημα Unicode ορίζει δύο τρόπους αναπαράστασης και αποθήκευσης των χαρακτήρων - οικογένειες προτύπων.
Κωδικοποιήσεις UTF (Unicode Transformation Format).
Κωδικοποιήσεις UCS (Universal Character Set).
Οι τρόποι απεικόνισης περιλαμβάνουν τις εξής κύριες κωδικοποιήσεις: UTF-32, UCS-4, UTF-16, UCS-2, UTF-8, UTF-EBCDIC.
(η UTF-16 χρησιμοποιεί 16 bit, UCS-2 χρησιμοποιεί 2 byte=16 bit).
Σύγκριση
- Η μέθοδος κωδικοποίησης UCS είναι παλαιότερη από την UTF, η οποία προσφέρει περισσότερα πλεονεκτήματα και σταδιακά εγκαταλείπεται.
- Η UTF-16 παρέχει τα ίδια πλεονεκτήματα και είναι αντίστοιχη με την UCS-2 (για κωδικά σημεία μέχρι 16 bit), αλλά είναι παράλληλα πιο ευέλικτη.
- H UTF-8 παρέχει αρκετά πλεονεκτήματα και είναι η πιο συχνή κωδικοποίηση πληροφοριών στο Διαδίκτυο μετά από την ASCII:
- Συμβατότητα με την κωδικοποίηση ASCII (128 χαρακτήρες)
- Εξοικονόμηση χώρου, αφού οι περισσότερες πληροφορίες γενικά αποτελούνται κυρίως από σύμβολα από το διάστημα του Unicode U+0000 μέχρι U+007F τα οποία χρειάζονται μόνο 8 bit για αποθήκευση.
- Το κύριο μειονέκτημα της κωδικοποίησης UTF-8 είναι η επιπρόσθετη (πιο σύνθετη) επεξεργασία για αποκωδικοποίηση, αφού ο αριθμός των bit διαφέρει από χαρακτήρα σε χαρακτήρα.
- Όπου αυτό αποτελεί σοβαρό πρόβλημα, μπορεί να χρησιμοποιηθεί κάποιος εναλλακτικός τρόπος κωδικοποίησης, π.χ. UTF-16.