1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Hardison: Nel video il binario, mostriamo come 2 00:00:09,290 --> 00:00:12,540 rappresentano l'insieme dei numeri interi, da zero up, 3 00:00:12,540 --> 00:00:15,110 utilizzando solo le cifre zero e uno. 4 00:00:15,110 --> 00:00:17,890 In questo video, abbiamo intenzione di utilizzare la notazione binaria per 5 00:00:17,890 --> 00:00:21,160 rappresentare il testo, lettere e simili, come pure. 6 00:00:21,160 --> 00:00:22,810 >> Perché ci prendiamo la briga di fare questo? 7 00:00:22,810 --> 00:00:25,450 Ebbene, sotto il cofano, un computer veramente solo 8 00:00:25,450 --> 00:00:29,070 capisce zero e uno, le cifre binarie, dal momento che questi 9 00:00:29,070 --> 00:00:32,100 possono essere rappresentati facilmente con cose elettromagnetici. 10 00:00:32,100 --> 00:00:35,040 >> Per esempio, pensate di memoria del computer come un lungo 11 00:00:35,040 --> 00:00:37,810 serie di lampadine, per cui ogni singolo bulbo 12 00:00:37,810 --> 00:00:40,680 rappresenta uno zero se è spenta, e una 13 00:00:40,680 --> 00:00:42,230 se è acceso. 14 00:00:42,230 --> 00:00:44,730 Invece di utilizzare un gruppo di lampadine, alcuni moderni 15 00:00:44,730 --> 00:00:46,990 memoria fa questo utilizzando condensatori che tengono un basso 16 00:00:46,990 --> 00:00:49,120 carica a rappresentare uno zero e una carica elevata 17 00:00:49,120 --> 00:00:50,780 per rappresentare uno. 18 00:00:50,780 --> 00:00:52,510 >> Esistono anche altre tecniche. 19 00:00:52,510 --> 00:00:55,500 Comunque, al fine di conservare niente nella memoria, dobbiamo 20 00:00:55,500 --> 00:00:57,590 prima convertirlo in qualcosa che può essere effettivamente 21 00:00:57,590 --> 00:01:00,140 rappresentato nel hardware fisico. 22 00:01:00,140 --> 00:01:02,450 Quindi cerchiamo di pensare a come potrebbe rappresentare lettere con 23 00:01:02,450 --> 00:01:04,230 notazione binaria. 24 00:01:04,230 --> 00:01:08,141 In inglese, abbiamo 26 lettere nell'alfabeto alfabetico, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, e così via, fino a Z. Possiamo assegnare ciascuno dei 26 00:01:12,930 --> 00:01:16,650 questi un numero, diciamo da zero a 25, e quindi utilizzando 27 00:01:16,650 --> 00:01:18,880 notazione binaria, siamo in grado di rappresentare ogni numero come 28 00:01:18,880 --> 00:01:20,890 sequenza di zero e uno. 29 00:01:20,890 --> 00:01:22,420 Questo non è troppo male. 30 00:01:22,420 --> 00:01:25,050 Tuttavia, ciò non sarà sufficiente. 31 00:01:25,050 --> 00:01:27,680 Con questo sistema, non possiamo realmente distinguere 32 00:01:27,680 --> 00:01:29,830 lettere maiuscole e minuscole. 33 00:01:29,830 --> 00:01:32,140 Se vogliamo che il nostro computer per essere in grado di distinguere tra 34 00:01:32,140 --> 00:01:36,020 i due casi, allora abbiamo bisogno di ulteriori 26 numeri. 35 00:01:36,020 --> 00:01:38,700 E per quanto riguarda punti, virgole e 36 00:01:38,700 --> 00:01:40,390 altri segni di interpunzione? 37 00:01:40,390 --> 00:01:43,560 >> Sulla mia tastiera, ho 32 di questi, compresi tutti i 38 00:01:43,560 --> 00:01:46,800 caratteri speciali come il punto di inserimento e la e commerciale. 39 00:01:46,800 --> 00:01:49,700 Questo esclusi i caratteri numerici, da zero a nove, 40 00:01:49,700 --> 00:01:51,840 dal momento che ancora voglia di essere in grado di digitare numeri in formato decimale 41 00:01:51,840 --> 00:01:54,840 notazione sul computer, anche se il computer solo veramente 42 00:01:54,840 --> 00:01:57,830 capisce notazione binaria sotto il cofano. 43 00:01:57,830 --> 00:02:00,620 >> E, infine, abbiamo bisogno di rappresentare un carattere di spazio in modo 44 00:02:00,620 --> 00:02:02,450 che la nostra barra spaziatrice funziona. 45 00:02:02,450 --> 00:02:04,920 Quindi, per capire come rappresentare il testo nel computer 46 00:02:04,920 --> 00:02:08,400 prende un po 'di più di quanto si potrebbe pensare inizialmente. 47 00:02:08,400 --> 00:02:11,710 Inoltre, assumono abbiamo poi messo a punto la nostra codifica propria 48 00:02:11,710 --> 00:02:14,560 schema per rappresentare i caratteri come numeri. 49 00:02:14,560 --> 00:02:17,470 Tuttavia abbiamo deciso di codificare i caratteri saranno inevitabilmente 50 00:02:17,470 --> 00:02:20,630 arbitraria, come abbiamo visto prima, quando abbiamo parlato con il 51 00:02:20,630 --> 00:02:23,730 numeri da zero a 25 per rappresentare le lettere A 52 00:02:23,730 --> 00:02:26,850 a Z. Perché non utilizzare da 10 a 35 in modo da poter salvare 53 00:02:26,850 --> 00:02:29,350 da zero a nove per i caratteri numerici? 54 00:02:29,350 --> 00:02:31,590 >> Non c'è alcun motivo reale, abbiamo solo scelto ciò che sembrava 55 00:02:31,590 --> 00:02:33,770 meglio per noi. 56 00:02:33,770 --> 00:02:37,650 Torna nel 1960, questo è stato un vero problema. 57 00:02:37,650 --> 00:02:39,370 Diversi produttori di computer usavano 58 00:02:39,370 --> 00:02:41,910 diversi schemi di codifica, e la presente comunicazione ha 59 00:02:41,910 --> 00:02:44,340 tra macchine diverse un compito molto difficile. 60 00:02:44,340 --> 00:02:47,810 L'American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 costituito un comitato per lo sviluppo di un progetto comune. 62 00:02:50,210 --> 00:02:53,780 E nel 1963, il Codice americano standard per l'informazione 63 00:02:53,780 --> 00:02:58,600 Interchange, più comunemente conosciuto come ASCII, è nato. 64 00:02:58,600 --> 00:03:01,360 >> ASCII è stato concepito come un sette bit di codifica, che 65 00:03:01,360 --> 00:03:03,800 significa che ogni carattere è rappresentato da una combinazione 66 00:03:03,800 --> 00:03:06,070 di sette zeri e uno. 67 00:03:06,070 --> 00:03:09,670 Con questi due valori possibili, zero o uno, per ciascun 68 00:03:09,670 --> 00:03:14,040 dei sette bit, vi sono due al settimo o 128 69 00:03:14,040 --> 00:03:16,120 caratteri che possono essere rappresentati con l'ASCII 70 00:03:16,120 --> 00:03:18,140 schema di codifica. 71 00:03:18,140 --> 00:03:21,480 Così 128 caratteri suona come un sacco, vero? 72 00:03:21,480 --> 00:03:24,180 Bene, ricordate che ci sono 26 lettere minuscole in 73 00:03:24,180 --> 00:03:29,260 Inglese, altri 26 lettere maiuscole, 10 caratteri numerici, 74 00:03:29,260 --> 00:03:31,470 32 segni di punteggiatura e caratteri speciali, 75 00:03:31,470 --> 00:03:33,430 e un carattere di spazio. 76 00:03:33,430 --> 00:03:37,050 >> Questo ci mette a 95, quindi abbiamo un altro 33 caratteri che 77 00:03:37,050 --> 00:03:38,400 può rappresentare. 78 00:03:38,400 --> 00:03:39,900 >> Allora, cosa rimane? 79 00:03:39,900 --> 00:03:43,130 Ebbene, nei giorni dello sviluppo di ASCII, telescrivente 80 00:03:43,130 --> 00:03:45,080 macchine da scrivere, che sono utilizzati per 81 00:03:45,080 --> 00:03:48,040 inviare messaggi attraverso una rete, erano diffusi. 82 00:03:48,040 --> 00:03:50,030 E queste macchine avevano caratteri aggiuntivi utilizzati per 83 00:03:50,030 --> 00:03:52,890 controllarli, per esempio, per dire loro quando spostare l' 84 00:03:52,890 --> 00:03:57,620 la testina di stampa verso il basso una linea, la linea di alimentazione o il tasto nuova linea, 85 00:03:57,620 --> 00:04:00,440 quando per passare al margine sinistro, il ritorno a capo, 86 00:04:00,440 --> 00:04:04,890 o semplicemente restituire il tasto, e quando andare indietro di uno spazio, il 87 00:04:04,890 --> 00:04:07,760 backspace carattere, e così via. 88 00:04:07,760 --> 00:04:10,250 >> Questi caratteri sono chiamati caratteri di controllo, e 89 00:04:10,250 --> 00:04:12,680 costituiscono il resto del set ASCII. 90 00:04:12,680 --> 00:04:15,230 Quindi, se guardiamo una tabella ASCII, si vede che la prima 91 00:04:15,230 --> 00:04:18,800 32 numeri, da zero a 31, sono riservati per il controllo 92 00:04:18,800 --> 00:04:20,200 caratteri. 93 00:04:20,200 --> 00:04:23,420 Ma abbiamo appena detto che ci sono stati 33 caratteri di controllo. 94 00:04:23,420 --> 00:04:24,780 Qual è il problema? 95 00:04:24,780 --> 00:04:29,350 Beh, il numero zero e 127, il primo e l'ultimo della 96 00:04:29,350 --> 00:04:32,560 ASCII, hanno modelli di bit speciali, tutti gli zeri e tutti 97 00:04:32,560 --> 00:04:34,710 quelli, rispettivamente. 98 00:04:34,710 --> 00:04:36,860 >> I progettisti di ASCII ha deciso, quindi, di 99 00:04:36,860 --> 00:04:39,610 preservare questi numeri per ulteriori caratteri speciali, 100 00:04:39,610 --> 00:04:43,310 vale a dire il carattere null e il carattere DEL. 101 00:04:43,310 --> 00:04:46,340 Null e DEL sono stati destinati per l'editing di nastro di carta, che ha utilizzato 102 00:04:46,340 --> 00:04:48,930 essere un modo comune di archiviazione dei dati. 103 00:04:48,930 --> 00:04:51,850 Nastro di carta era letteralmente solo una lunga striscia di carta, e in 104 00:04:51,850 --> 00:04:53,760 intervalli regolari, sul nastro, che ci pugno 105 00:04:53,760 --> 00:04:55,430 fori per memorizzare i dati. 106 00:04:55,430 --> 00:04:58,720 A seconda della larghezza del nastro, ciascuna colonna sarebbe 107 00:04:58,720 --> 00:05:03,186 in grado di ospitare cinque, sei, sette, o otto bit. 108 00:05:03,186 --> 00:05:05,930 >> Per rappresentare un po 'a zero, che ci fanno nulla per il nastro, faresti 109 00:05:05,930 --> 00:05:07,930 basta lasciare uno spazio vuoto. 110 00:05:07,930 --> 00:05:10,560 Per un po 'uno, avresti un buco. 111 00:05:10,560 --> 00:05:12,980 Il carattere null sarebbe semplicemente lasciato una colonna vuota, 112 00:05:12,980 --> 00:05:14,480 indicando tutti gli zeri. 113 00:05:14,480 --> 00:05:17,250 E il carattere DEL perforavano una colonna piena di buchi 114 00:05:17,250 --> 00:05:18,550 attraverso il nastro. 115 00:05:18,550 --> 00:05:21,300 Di conseguenza, è possibile utilizzare il carattere DEL per cancellare 116 00:05:21,300 --> 00:05:22,440 informazioni. 117 00:05:22,440 --> 00:05:25,060 Immaginate di prendere un pieno-out scrutinio elettorale e poi 118 00:05:25,060 --> 00:05:27,180 punzonatura tutti i fori unpunched. 119 00:05:27,180 --> 00:05:29,410 >> È invalidare il voto perché è impossibile 120 00:05:29,410 --> 00:05:31,820 dire che cosa i voti originali erano. 121 00:05:31,820 --> 00:05:34,720 Mentre il carattere DEL viene ancora utilizzato è il moderno 122 00:05:34,720 --> 00:05:37,980 Tasto di cancellazione, il carattere null è venuto per essere utilizzato come 123 00:05:37,980 --> 00:05:40,010 carattere di terminazione per le stringhe C e 124 00:05:40,010 --> 00:05:41,990 alcuni formati di altri dati. 125 00:05:41,990 --> 00:05:45,140 Si potrebbe sapere come il carattere zero backslash, 126 00:05:45,140 --> 00:05:47,720 dato che è il modo in cui si rappresentano in forma scritta. 127 00:05:47,720 --> 00:05:49,580 Ma torniamo al nostro tavolo ASCII. 128 00:05:49,580 --> 00:05:52,770 Dopo i primi 32 caratteri di controllo sono il 95 129 00:05:52,770 --> 00:05:54,280 caratteri stampabili. 130 00:05:54,280 --> 00:05:55,800 >> Ci sono un paio di decisioni di progettazione fresco vale la pena 131 00:05:55,800 --> 00:05:57,330 parlando qui. 132 00:05:57,330 --> 00:06:00,810 In primo luogo, i caratteri cifra decimale, da zero a nove, 133 00:06:00,810 --> 00:06:04,050 corrispondono ai numeri 48 e 57, che sembra 134 00:06:04,050 --> 00:06:06,980 irrilevante fino a quando si guarda ai numeri 48 e 57 135 00:06:06,980 --> 00:06:09,080 scritto in notazione binaria. 136 00:06:09,080 --> 00:06:11,530 Se facciamo questo, allora si vede che il carattere cifra, 137 00:06:11,530 --> 00:06:22,320 zero, corrisponde a 0110000, uno mappe 0110001, due a 138 00:06:22,320 --> 00:06:26,640 0110010, e così via. 139 00:06:26,640 --> 00:06:27,950 Vedi il modello? 140 00:06:27,950 --> 00:06:30,170 Ogni personaggio cifra è mappato il suo corrispondente 141 00:06:30,170 --> 00:06:35,170 equivalente in notazione binaria, il prefisso 011. 142 00:06:35,170 --> 00:06:38,820 Il prossimo, si nota che le lettere maiuscole inizio alle 65, 143 00:06:38,820 --> 00:06:41,310 con la A maiuscola, ma le lettere minuscole 144 00:06:41,310 --> 00:06:43,010 non iniziare fino al 97. 145 00:06:43,010 --> 00:06:45,580 Quindi ci sono 32 spazi in mezzo. 146 00:06:45,580 --> 00:06:47,000 Mi sembra strano. 147 00:06:47,000 --> 00:06:49,500 Sono solo 26 le lettere dell'alfabeto. 148 00:06:49,500 --> 00:06:51,410 >> Perché dividerli in questo modo? 149 00:06:51,410 --> 00:06:53,960 Anche in questo caso, se guardiamo le rappresentazioni binarie, possiamo 150 00:06:53,960 --> 00:06:55,230 vedere un modello. 151 00:06:55,230 --> 00:07:01,360 A maiuscola è rappresentata da 1000001, e minuscolo a è 152 00:07:01,360 --> 00:07:05,810 rappresentato da 1.100.001. 153 00:07:05,810 --> 00:07:12,770 Maiuscolo B è rappresentata da 1000010, e b è minuscola 154 00:07:12,770 --> 00:07:17,280 rappresentato da 1.100.010. 155 00:07:17,280 --> 00:07:19,440 Puoi dire quello che sta succedendo qui? 156 00:07:19,440 --> 00:07:22,470 Il bit che è la seconda da sinistra, in due per il 157 00:07:22,470 --> 00:07:26,510 quinti, per la posizione 32ths, è 0 per tutte le lettere maiuscole 158 00:07:26,510 --> 00:07:30,120 lettere, e 1 per tutte le lettere minuscole. 159 00:07:30,120 --> 00:07:33,130 >> Ciò significa che la conversione da maiuscolo a minuscolo, e 160 00:07:33,130 --> 00:07:36,000 viceversa, si tratta di un flip po 'semplice. 161 00:07:36,000 --> 00:07:38,380 In modo che ci porta alla fine della tabella ASCII. 162 00:07:38,380 --> 00:07:40,700 Riuscite a pensare a tutto ciò che abbiamo dimenticato? 163 00:07:40,700 --> 00:07:42,510 Beh, che dire del enye spagnolo, o il 164 00:07:42,510 --> 00:07:44,630 Alfabeti greco o cirillico? 165 00:07:44,630 --> 00:07:46,610 E per quanto riguarda i caratteri cinesi? 166 00:07:46,610 --> 00:07:49,050 Ci sono un sacco che è stato lasciato fuori ASCII. 167 00:07:49,050 --> 00:07:51,920 Tuttavia, un altro standard Unicode è stato chiamato 168 00:07:51,920 --> 00:07:53,040 sviluppato per coprire tutte queste 169 00:07:53,040 --> 00:07:54,840 personaggi e molti altri. 170 00:07:54,840 --> 00:07:57,040 >> Ma questo è un argomento per un'altra volta. 171 00:07:57,040 --> 00:07:58,500 Il mio nome è Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Questo è CS50.