1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE HARDISON: Στο βίντεο σε δυαδική, θα δείξει πώς να 2 00:00:09,290 --> 00:00:12,540 αντιπροσωπεύουν το σύνολο των ακέραιων αριθμών, από μηδέν επάνω, 3 00:00:12,540 --> 00:00:15,110 Χρησιμοποιώντας μόνο τα ψηφία μηδέν και ένα. 4 00:00:15,110 --> 00:00:17,890 Σε αυτό το βίντεο, θα πάμε να χρησιμοποιούν δυαδική μορφή για να 5 00:00:17,890 --> 00:00:21,160 αντιπροσωπεύουν κείμενο, γράμματα και όπως, επίσης. 6 00:00:21,160 --> 00:00:22,810 >> Γιατί θα έχουμε τον κόπο να το κάνετε αυτό; 7 00:00:22,810 --> 00:00:25,450 Λοιπόν, κάτω από την κουκούλα, ένας υπολογιστής μόνο πραγματικά 8 00:00:25,450 --> 00:00:29,070 καταλαβαίνει μηδενικά και μονάδες, οι δυαδικά ψηφία, δεδομένου ότι αυτά 9 00:00:29,070 --> 00:00:32,100 μπορεί να παρασταθεί εύκολα με ηλεκτρομαγνητικά πράγματα. 10 00:00:32,100 --> 00:00:35,040 >> Για παράδειγμα, σκεφτείτε τη μνήμη του υπολογιστή σας, όπως μια μακρά 11 00:00:35,040 --> 00:00:37,810 σειρά των λαμπτήρων, σύμφωνα με την οποία κάθε ατομική λάμπα 12 00:00:37,810 --> 00:00:40,680 αντιπροσωπεύει ένα μηδέν αν είναι απενεργοποιημένο, και ένα one 13 00:00:40,680 --> 00:00:42,230 αν είναι ενεργοποιημένο. 14 00:00:42,230 --> 00:00:44,730 Αντί να χρησιμοποιεί μια δέσμη των λαμπτήρων, μερικές σύγχρονες 15 00:00:44,730 --> 00:00:46,990 μνήμη αυτή η χρήση πυκνωτών που κρατούν ένα χαμηλό 16 00:00:46,990 --> 00:00:49,120 χρεώνουν να αντιπροσωπεύουν ένα μηδέν και ένα υψηλό φορτίο 17 00:00:49,120 --> 00:00:50,780 να αντιπροσωπεύει ένα. 18 00:00:50,780 --> 00:00:52,510 >> Υπάρχουν και άλλες τεχνικές, καθώς και. 19 00:00:52,510 --> 00:00:55,500 Εν πάση περιπτώσει, για την αποθήκευση στη μνήμη τίποτα, πρέπει να 20 00:00:55,500 --> 00:00:57,590 πρώτα να μετατραπεί σε κάτι που μπορεί να είναι πραγματικά 21 00:00:57,590 --> 00:01:00,140 εκπροσωπούνται στο φυσικό υλικό. 22 00:01:00,140 --> 00:01:02,450 Ας σκεφτούμε πώς θα μπορούσαμε να αντιπροσωπεύουν γράμματα με 23 00:01:02,450 --> 00:01:04,230 δυαδική μορφή. 24 00:01:04,230 --> 00:01:08,141 Στα αγγλικά, έχουμε 26 γράμματα του αλφαβήτου, Α, 25 00:01:08,141 --> 00:01:12,930 >> Β, Γ, Δ, και ούτω καθεξής, μέχρι διαμέσου Ζ. Μπορούμε να εκχωρήσει σε κάθε μία από τις 26 00:01:12,930 --> 00:01:16,650 αυτά ένας αριθμός, δηλαδή μηδέν έως 25, και στη συνέχεια χρησιμοποιώντας 27 00:01:16,650 --> 00:01:18,880 δυαδική μορφή, μπορούμε να αντιπροσωπεύει κάθε αριθμό ως 28 00:01:18,880 --> 00:01:20,890 ακολουθία από μηδενικά και μονάδες. 29 00:01:20,890 --> 00:01:22,420 Αυτό δεν είναι και τόσο άσχημα. 30 00:01:22,420 --> 00:01:25,050 Ωστόσο, αυτό δεν πρόκειται να είναι αρκετή. 31 00:01:25,050 --> 00:01:27,680 Με αυτό το σύστημα, δεν μπορούμε πράγματι διακρίνει μεταξύ 32 00:01:27,680 --> 00:01:29,830 πεζά και κεφαλαία γράμματα. 33 00:01:29,830 --> 00:01:32,140 Αν θέλουμε ο υπολογιστής μας να είναι σε θέση να διαφοροποιήσει μεταξύ 34 00:01:32,140 --> 00:01:36,020 οι δύο περιπτώσεις, τότε χρειαζόμαστε ένα επιπλέον 26 αριθμούς. 35 00:01:36,020 --> 00:01:38,700 Και τι γίνεται με τελείες, κόμματα, και 36 00:01:38,700 --> 00:01:40,390 άλλα σημεία στίξης; 37 00:01:40,390 --> 00:01:43,560 >> Στο πληκτρολόγιο μου, έχω 32 από αυτούς, συμπεριλαμβανομένων όλων των 38 00:01:43,560 --> 00:01:46,800 ειδικούς χαρακτήρες, όπως το καρέ και το εμπορικό. 39 00:01:46,800 --> 00:01:49,700 Αυτό δεν είναι όπως τα αριθμητικά χαρακτήρες, το μηδέν έως εννέα, 40 00:01:49,700 --> 00:01:51,840 δεδομένου ότι εξακολουθούν να θέλουν να είναι σε θέση να πληκτρολογήσετε αριθμούς σε δεκαδική 41 00:01:51,840 --> 00:01:54,840 σημειογραφία στον υπολογιστή, ακόμα και αν ο υπολογιστής μόνο πραγματικά 42 00:01:54,840 --> 00:01:57,830 καταλαβαίνει δυαδική μορφή κάτω από την κουκούλα. 43 00:01:57,830 --> 00:02:00,620 >> Και τέλος, θα πρέπει να αντιπροσωπεύουν ένα κενό διάστημα, ώστε 44 00:02:00,620 --> 00:02:02,450 Space Bar ότι μας δουλεύει. 45 00:02:02,450 --> 00:02:04,920 Έτσι αναφέρονται για το πώς να αντιπροσωπεύσουν το κείμενο στον υπολογιστή 46 00:02:04,920 --> 00:02:08,400 παίρνει λίγο περισσότερο από ό, τι θα μπορούσε να σκεφτεί αρχικά. 47 00:02:08,400 --> 00:02:11,710 Επιπλέον, ας υποθέσουμε ότι στη συνέχεια έρχονται με τη δική μας κωδικοποίηση 48 00:02:11,710 --> 00:02:14,560 σύστημα να εκπροσωπεί τους χαρακτήρες όπως τους αριθμούς. 49 00:02:14,560 --> 00:02:17,470 Ωστόσο, αποφασίζουμε για την κωδικοποίηση χαρακτήρων θα είναι αναπόφευκτα 50 00:02:17,470 --> 00:02:20,630 αυθαίρετη, όπως είδαμε νωρίτερα, όταν μιλήσαμε για τη χρήση του 51 00:02:20,630 --> 00:02:23,730 αριθμοί μηδέν έως 25 να αντιπροσωπεύουν τα γράμματα Α 52 00:02:23,730 --> 00:02:26,850 μέσω Ζ. Γιατί να μην χρησιμοποιούν 10 έως 35, έτσι ώστε να μπορούμε να αποθηκεύσετε 53 00:02:26,850 --> 00:02:29,350 μηδέν έως εννέα για τις ψηφίο χαρακτήρες; 54 00:02:29,350 --> 00:02:31,590 >> Δεν υπάρχει πραγματικός λόγος, απλά επέλεξε ό, τι φάνηκε 55 00:02:31,590 --> 00:02:33,770 καλύτερο για μας. 56 00:02:33,770 --> 00:02:37,650 Πίσω στις αρχές της δεκαετίας του 1960, αυτό ήταν ένα πραγματικό πρόβλημα. 57 00:02:37,650 --> 00:02:39,370 Διαφορετικοί κατασκευαστές υπολογιστών χρησιμοποιούσαν 58 00:02:39,370 --> 00:02:41,910 διαφορετικά συστήματα κωδικοποίησης, και αυτό κάνει την επικοινωνία 59 00:02:41,910 --> 00:02:44,340 μεταξύ διαφορετικών μηχανών ένα πολύ δύσκολο έργο. 60 00:02:44,340 --> 00:02:47,810 Το Αμερικανικό Εθνικό Ινστιτούτο Προτύπων, ANSI, 61 00:02:47,810 --> 00:02:50,210 σχηματίζεται μια επιτροπή για να αναπτύξουν ένα κοινό σύστημα. 62 00:02:50,210 --> 00:02:53,780 Και το 1963, η American Standard Κώδικας για πληροφορίες 63 00:02:53,780 --> 00:02:58,600 Interchange, πιο γνωστό ως ASCII, γεννήθηκε. 64 00:02:58,600 --> 00:03:01,360 >> ASCII έχει σχεδιαστεί ως ένα επτά-bit κωδικοποίηση, η οποία 65 00:03:01,360 --> 00:03:03,800 σημαίνει ότι κάθε χαρακτήρας αντιπροσωπεύεται από ένα συνδυασμό 66 00:03:03,800 --> 00:03:06,070 επτά μηδενικά και μονάδες. 67 00:03:06,070 --> 00:03:09,670 Με αυτές τις δύο πιθανές τιμές, μηδέν ή ένα, για κάθε 68 00:03:09,670 --> 00:03:14,040 των επτά bit, υπάρχουν δύο προς την έβδομη ή 128 69 00:03:14,040 --> 00:03:16,120 χαρακτήρες που μπορεί να παρασταθεί με το ASCII 70 00:03:16,120 --> 00:03:18,140 σχήμα κωδικοποίησης. 71 00:03:18,140 --> 00:03:21,480 Έτσι 128 χαρακτήρες ακούγεται σαν μια παρτίδα, έτσι δεν είναι; 72 00:03:21,480 --> 00:03:24,180 Λοιπόν, να θυμάστε ότι υπάρχουν 26 σε πεζά γράμματα 73 00:03:24,180 --> 00:03:29,260 Αγγλικά, άλλα 26 κεφαλαία γράμματα, 10 ψηφία χαρακτήρες, 74 00:03:29,260 --> 00:03:31,470 32 στίξης και ειδικούς χαρακτήρες, 75 00:03:31,470 --> 00:03:33,430 και ένα χαρακτήρα διαστήματος. 76 00:03:33,430 --> 00:03:37,050 >> Αυτό μας βάζει σε 95, έτσι έχουμε άλλα 33 χαρακτήρες που 77 00:03:37,050 --> 00:03:38,400 μπορεί να αντιπροσωπεύει. 78 00:03:38,400 --> 00:03:39,900 >> Οπότε τι μένει; 79 00:03:39,900 --> 00:03:43,130 Λοιπόν, κατά τις ημέρες της ανάπτυξης του ASCII, τηλέτυπου 80 00:03:43,130 --> 00:03:45,080 μηχανήματα, τα οποία είναι γραφομηχανές που χρησιμοποιούνται για να 81 00:03:45,080 --> 00:03:48,040 αποστολή μηνυμάτων σε ένα δίκτυο, ήταν ευρέως διαδεδομένη. 82 00:03:48,040 --> 00:03:50,030 Και αυτά τα μηχανήματα είχαν επιπλέον χαρακτήρες που χρησιμοποιούνται για την 83 00:03:50,030 --> 00:03:52,890 τον έλεγχο τους, για παράδειγμα, για να τους πει πότε για να μετακινήσετε το 84 00:03:52,890 --> 00:03:57,620 εκτυπώσετε το κεφάλι κάτω μια γραμμή, η γραμμή τροφοδοσίας ή νέο αριθμό-κλειδί γραμμή, 85 00:03:57,620 --> 00:04:00,440 όταν για να μετακινηθείτε στο αριστερό περιθώριο, η μεταφορά μετ 'επιστροφής, 86 00:04:00,440 --> 00:04:04,890 ή απλά να επιστρέψει κλειδί, και πότε να πάει πίσω ένα χώρο, ο 87 00:04:04,890 --> 00:04:07,760 χαρακτήρων backspace, και ούτω καθεξής. 88 00:04:07,760 --> 00:04:10,250 >> Αυτές οι χαρακτήρες που ονομάζονται χαρακτήρες ελέγχου, και 89 00:04:10,250 --> 00:04:12,680 αποτελούν το υπόλοιπο της ASCII σετ. 90 00:04:12,680 --> 00:04:15,230 Έτσι, αν κοιτάξουμε ένα ASCII πίνακα, βλέπουμε ότι η πρώτη 91 00:04:15,230 --> 00:04:18,800 Οι 32 αριθμοί, μηδέν έως 31, που προορίζονται για τον έλεγχο 92 00:04:18,800 --> 00:04:20,200 χαρακτήρες. 93 00:04:20,200 --> 00:04:23,420 Αλλά μόλις είπε ότι υπήρχαν 33 χαρακτήρες ελέγχου. 94 00:04:23,420 --> 00:04:24,780 Ποια είναι η διαπραγμάτευση; 95 00:04:24,780 --> 00:04:29,350 Λοιπόν, ο αριθμός μηδέν και το 127, το πρώτο και το τελευταίο από τα 96 00:04:29,350 --> 00:04:32,560 ASCII σύνολο, έχουν ιδιαίτερη μοτίβα λίγο, όλα τα μηδενικά και όλα 97 00:04:32,560 --> 00:04:34,710 αυτά, αντίστοιχα. 98 00:04:34,710 --> 00:04:36,860 >> Οι σχεδιαστές του ASCII αποφάσισε, ως εκ τούτου, να 99 00:04:36,860 --> 00:04:39,610 διατήρηση αυτών των αριθμών για επιπλέον ειδικούς χαρακτήρες, 100 00:04:39,610 --> 00:04:43,310 δηλαδή η μηδενική χαρακτήρας και ο χαρακτήρας DEL. 101 00:04:43,310 --> 00:04:46,340 Null και DEL προορίζονταν για επεξεργασία ταινία χαρτί, το οποίο χρησιμοποιείται 102 00:04:46,340 --> 00:04:48,930 να είναι ένας συνηθισμένος τρόπος αποθήκευσης δεδομένων. 103 00:04:48,930 --> 00:04:51,850 Χαρτί ταινία ήταν κυριολεκτικά μια μεγάλη ταινία χαρτιού, καθώς και σε 104 00:04:51,850 --> 00:04:53,760 τακτά χρονικά διαστήματα για την ταινία, που θα γροθιά 105 00:04:53,760 --> 00:04:55,430 τρύπες για την αποθήκευση δεδομένων. 106 00:04:55,430 --> 00:04:58,720 Ανάλογα με το πλάτος της ταινίας, κάθε στήλη θα ήταν 107 00:04:58,720 --> 00:05:03,186 θέση να φιλοξενήσει πέντε, έξι, επτά, ή οκτώ μπιτ. 108 00:05:03,186 --> 00:05:05,930 >> Για να αντιπροσωπεύουν ένα μηδέν λίγο, θα κάνετε τίποτα για την ταινία, θα έπαιρνα 109 00:05:05,930 --> 00:05:07,930 απλά αφήστε ένα κενό διάστημα. 110 00:05:07,930 --> 00:05:10,560 Για λίγο το ένα, θα ήθελα να ανοίξω μία τρύπα. 111 00:05:10,560 --> 00:05:12,980 Ο χαρακτήρας null θα αφήσει μόνο μια κενή στήλη, 112 00:05:12,980 --> 00:05:14,480 αναφέροντας όλα τα μηδενικά. 113 00:05:14,480 --> 00:05:17,250 Και ο χαρακτήρας DEL θα γροθιά μια στήλη γεμάτο τρύπες 114 00:05:17,250 --> 00:05:18,550 μέσω ταινία σας. 115 00:05:18,550 --> 00:05:21,300 Ως αποτέλεσμα, μπορείτε να χρησιμοποιήσετε το χαρακτήρα DEL για να διαγράψετε 116 00:05:21,300 --> 00:05:22,440 πληροφοριών. 117 00:05:22,440 --> 00:05:25,060 Φανταστείτε τη λήψη συμπληρωμένη ψηφοφορία εκλογής και στη συνέχεια 118 00:05:25,060 --> 00:05:27,180 διάτρησης όλων των unpunched τρύπες. 119 00:05:27,180 --> 00:05:29,410 >> Θα ακυρώσει την ψηφοφορία, διότι είναι αδύνατο να 120 00:05:29,410 --> 00:05:31,820 πει τι οι ψήφοι ήταν αρχικά. 121 00:05:31,820 --> 00:05:34,720 Αν και ο χαρακτήρας DEL εξακολουθεί να χρησιμοποιείται είναι η σύγχρονη 122 00:05:34,720 --> 00:05:37,980 Διαγραφή κλειδί, η μηδενική χαρακτήρα ήρθε να χρησιμοποιηθεί ως το 123 00:05:37,980 --> 00:05:40,010 χαρακτήρα τερματισμού για έγχορδα και C 124 00:05:40,010 --> 00:05:41,990 κάποιες άλλες μορφές δεδομένων. 125 00:05:41,990 --> 00:05:45,140 Μπορεί να το γνωρίζουν, όπως ο χαρακτήρας backslash μηδέν, 126 00:05:45,140 --> 00:05:47,720 δεδομένου ότι είναι το πώς θα την εκπροσωπήσει στο γράψιμο. 127 00:05:47,720 --> 00:05:49,580 Έτσι, πίσω στο τραπέζι μας ASCII. 128 00:05:49,580 --> 00:05:52,770 Μετά τα πρώτα 32 χαρακτήρες ελέγχου έρθει το 95 129 00:05:52,770 --> 00:05:54,280 εκτυπώσιμους χαρακτήρες. 130 00:05:54,280 --> 00:05:55,800 >> Υπάρχουν ένα-δύο αποφάσεις δροσερό σχεδιασμό αξίζει 131 00:05:55,800 --> 00:05:57,330 μιλάμε για εδώ. 132 00:05:57,330 --> 00:06:00,810 Πρώτον, οι δεκαδικό ψηφίο χαρακτήρες, το μηδέν έως εννέα, 133 00:06:00,810 --> 00:06:04,050 αντιστοιχούν στους αριθμούς 48 έως 57, το οποίο φαίνεται 134 00:06:04,050 --> 00:06:06,980 μέτριος μέχρι κοιτάξουμε τους αριθμούς 48 έως 57 135 00:06:06,980 --> 00:06:09,080 γραμμένο σε δυαδική μορφή. 136 00:06:09,080 --> 00:06:11,530 Αν το κάνουμε αυτό, τότε βλέπουμε ότι το ψηφίο χαρακτήρα, 137 00:06:11,530 --> 00:06:22,320 μηδέν, αντιστοιχεί σε 0110000, μία χάρτες για 0110001, δύο έως 138 00:06:22,320 --> 00:06:26,640 0110010, και ούτω καθεξής. 139 00:06:26,640 --> 00:06:27,950 Δείτε το μοτίβο; 140 00:06:27,950 --> 00:06:30,170 Κάθε ψηφίο χαρακτήρας αντιστοιχίζεται με τις αντίστοιχες του 141 00:06:30,170 --> 00:06:35,170 ισοδύναμο σε δυαδική μορφή, με πρόθεμα 011. 142 00:06:35,170 --> 00:06:38,820 Έπειτα επάνω, θα παρατηρήσετε ότι τα κεφαλαία γράμματα ξεκινούν από 65, 143 00:06:38,820 --> 00:06:41,310 με κεφαλαίο Α, αλλά τα πεζά γράμματα 144 00:06:41,310 --> 00:06:43,010 δεν ξεκινούν μέχρι 97. 145 00:06:43,010 --> 00:06:45,580 Έτσι, υπάρχουν 32 κενά στο μεταξύ. 146 00:06:45,580 --> 00:06:47,000 Αυτό φαίνεται παράξενο. 147 00:06:47,000 --> 00:06:49,500 Είναι μόνο 26 γράμματα του αλφαβήτου. 148 00:06:49,500 --> 00:06:51,410 >> Γιατί να τους χωρίσουν σαν αυτό; 149 00:06:51,410 --> 00:06:53,960 Και πάλι, αν κοιτάξουμε τις παραστάσεις δυαδικό, μπορούμε 150 00:06:53,960 --> 00:06:55,230 δείτε ένα μοτίβο. 151 00:06:55,230 --> 00:07:01,360 Κεφαλαίο A αντιπροσωπεύεται από 1000001, πεζά και είναι ένα 152 00:07:01,360 --> 00:07:05,810 αντιπροσωπεύεται από 1100001. 153 00:07:05,810 --> 00:07:12,770 Κεφαλαία Β εκπροσωπείται από 1000010, πεζά και b είναι 154 00:07:12,770 --> 00:07:17,280 αντιπροσωπεύεται από 1100010. 155 00:07:17,280 --> 00:07:19,440 Μπορώ να σας πω τι συμβαίνει εδώ; 156 00:07:19,440 --> 00:07:22,470 Το κομμάτι αυτό είναι το δεύτερο από τα αριστερά, σε δύο για το 157 00:07:22,470 --> 00:07:26,510 πέμπτα, για 32ths θέση, είναι μηδέν για όλα τα κεφαλαία 158 00:07:26,510 --> 00:07:30,120 γράμματα, και 1 για όλα τα πεζά γράμματα. 159 00:07:30,120 --> 00:07:33,130 >> Αυτό σημαίνει μετατροπή από κεφαλαία σε πεζά, και 160 00:07:33,130 --> 00:07:36,000 αντίστροφα, είναι θέμα μιας απλής κτύπημα λίγο. 161 00:07:36,000 --> 00:07:38,380 Έτσι, αυτό μας φέρνει στο τέλος του πίνακα ASCII. 162 00:07:38,380 --> 00:07:40,700 Μπορείτε να σκεφτείτε κάτι που έχουμε ξεχάσει; 163 00:07:40,700 --> 00:07:42,510 Λοιπόν, τι γίνεται με την ισπανική enye, ή την 164 00:07:42,510 --> 00:07:44,630 Ελληνική ή κυριλλική αλφάβητο; 165 00:07:44,630 --> 00:07:46,610 Και τι γίνεται με τους κινεζικούς χαρακτήρες; 166 00:07:46,610 --> 00:07:49,050 Υπάρχουν πολλά που είναι ήδη μείνει έξω από ASCII. 167 00:07:49,050 --> 00:07:51,920 Ωστόσο, ένα άλλο πρότυπο που ονομάζεται Unicode έχει 168 00:07:51,920 --> 00:07:53,040 αναπτυχθεί για να καλύψει όλα αυτά 169 00:07:53,040 --> 00:07:54,840 χαρακτήρες και πολλά άλλα. 170 00:07:54,840 --> 00:07:57,040 >> Αλλά αυτό είναι ένα θέμα για μια άλλη φορά. 171 00:07:57,040 --> 00:07:58,500 Το όνομά μου είναι Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Αυτό είναι CS50.