1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate Hardison: O vídeo en binario, imos mostrar como 2 00:00:09,290 --> 00:00:12,540 representan o conxunto de números enteiros, de cero enriba, 3 00:00:12,540 --> 00:00:15,110 utilizando só os díxitos de cero e un. 4 00:00:15,110 --> 00:00:17,890 Neste vídeo, imos empregar a notación binaria para 5 00:00:17,890 --> 00:00:21,160 representar texto, letras e tal, tamén. 6 00:00:21,160 --> 00:00:22,810 >> Por que nos preocupar para facer iso? 7 00:00:22,810 --> 00:00:25,450 Ben, baixo o capo, un ordenador só é realmente 8 00:00:25,450 --> 00:00:29,070 enténdese ceros e uns, os díxitos binarios, xa que estes 9 00:00:29,070 --> 00:00:32,100 pode ser representado facilmente con cousas electromagnéticos. 10 00:00:32,100 --> 00:00:35,040 >> Por exemplo, pensar en memoria do seu ordenador como unha longa 11 00:00:35,040 --> 00:00:37,810 secuencia de lámpadas, no que cada individuo lámpada 12 00:00:37,810 --> 00:00:40,680 representa un cero se está desconectado, e un 13 00:00:40,680 --> 00:00:42,230 se está conectado. 14 00:00:42,230 --> 00:00:44,730 En vez de usar unha morea de lámpadas, algunhas moderna 15 00:00:44,730 --> 00:00:46,990 memoria fai iso usando capacitores que posúen un baixo 16 00:00:46,990 --> 00:00:49,120 cobra para representar un cero e unha alta carga 17 00:00:49,120 --> 00:00:50,780 para representar un. 18 00:00:50,780 --> 00:00:52,510 >> Hai outras técnicas tamén. 19 00:00:52,510 --> 00:00:55,500 En calquera caso, a fin de almacenar calquera cousa na memoria, precisamos 20 00:00:55,500 --> 00:00:57,590 primeiro convertelo en algo que poida ser realmente 21 00:00:57,590 --> 00:01:00,140 representados no hardware físico. 22 00:01:00,140 --> 00:01:02,450 Entón, imos pensar sobre como podemos representar letras con 23 00:01:02,450 --> 00:01:04,230 notación binaria. 24 00:01:04,230 --> 00:01:08,141 En inglés, temos 26 letras no alfabética, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, e así por diante, ata a Z. Pode atribuír a cada un dos 26 00:01:12,930 --> 00:01:16,650 estes un número, digamos cero a 25, e en seguida, usando 27 00:01:16,650 --> 00:01:18,880 notación binaria, podemos representar cada número como unha 28 00:01:18,880 --> 00:01:20,890 secuencia de ceros e uns. 29 00:01:20,890 --> 00:01:22,420 Isto non é moi ruín. 30 00:01:22,420 --> 00:01:25,050 Con todo, iso non vai ser suficiente. 31 00:01:25,050 --> 00:01:27,680 Con este sistema, non podemos realmente distinguir entre 32 00:01:27,680 --> 00:01:29,830 letras maiúsculas e minúsculas. 33 00:01:29,830 --> 00:01:32,140 Se queremos que o noso ordenador para ser capaz de diferenciar entre 34 00:01:32,140 --> 00:01:36,020 os dous casos, entón necesitamos un adicional de 26 números. 35 00:01:36,020 --> 00:01:38,700 E que dicir de períodos, comas e 36 00:01:38,700 --> 00:01:40,390 outros signos de puntuación? 37 00:01:40,390 --> 00:01:43,560 >> No meu teclado, eu teño 32 deles, incluíndo todos os 38 00:01:43,560 --> 00:01:46,800 caracteres especiais, como o acento circunflexo eo comercial. 39 00:01:46,800 --> 00:01:49,700 Isto non incluíndo os caracteres díxitos, de cero a nove, 40 00:01:49,700 --> 00:01:51,840 unha vez que aínda quero ser capaz de escribir números decimal 41 00:01:51,840 --> 00:01:54,840 notación no ordenador, aínda que o ordenador só realmente 42 00:01:54,840 --> 00:01:57,830 enténdese notación binaria baixo o capô. 43 00:01:57,830 --> 00:02:00,620 >> E, finalmente, imos ter que representar un carácter de espazo para 44 00:02:00,620 --> 00:02:02,450 que a nosa barra de espazo funciona. 45 00:02:02,450 --> 00:02:04,920 Entón, para descubrir como representar texto no ordenador 46 00:02:04,920 --> 00:02:08,400 Leva un pouco máis do que poderiamos pensar inicialmente. 47 00:02:08,400 --> 00:02:11,710 Ademais, supoña que despois vén coa nosa propia codificación 48 00:02:11,710 --> 00:02:14,560 esquema para representar caracteres como números. 49 00:02:14,560 --> 00:02:17,470 Con todo, decidir para codificar carácteres será inevitablemente 50 00:02:17,470 --> 00:02:20,630 arbitrario, como vimos anteriormente, cando falamos sobre o uso do 51 00:02:20,630 --> 00:02:23,730 números de cero a 25 para representar as letras A 52 00:02:23,730 --> 00:02:26,850 a Z. Por que non usar de 10 a 35, de xeito que podemos gardar 53 00:02:26,850 --> 00:02:29,350 cero a nove díxitos para os personaxes? 54 00:02:29,350 --> 00:02:31,590 >> Non hai ningunha razón real, que só escolleu o que parecía 55 00:02:31,590 --> 00:02:33,770 mellor para nós. 56 00:02:33,770 --> 00:02:37,650 Volver a comezos de 1960, este foi un problema real. 57 00:02:37,650 --> 00:02:39,370 Fabricantes de ordenadores diferentes estaban usando 58 00:02:39,370 --> 00:02:41,910 diferentes esquemas de codificación, e esta comunicación feita 59 00:02:41,910 --> 00:02:44,340 entre máquinas diferentes unha tarefa moi difícil. 60 00:02:44,340 --> 00:02:47,810 O American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 formou un comité para desenvolver un réxime común. 62 00:02:50,210 --> 00:02:53,780 E en 1963, o Código estándar americano para a Información 63 00:02:53,780 --> 00:02:58,600 Interchange, máis comunmente coñecido como ASCII, naceu. 64 00:02:58,600 --> 00:03:01,360 >> ASCII foi concibido como unha codificación de sete bits, que 65 00:03:01,360 --> 00:03:03,800 significa que cada personaxe é representado por unha combinación 66 00:03:03,800 --> 00:03:06,070 de sete ceros e uns. 67 00:03:06,070 --> 00:03:09,670 Con estes dous valores posibles, cero ou un, para cada 68 00:03:09,670 --> 00:03:14,040 de sete bits, hai dous para a sétima ou 128 69 00:03:14,040 --> 00:03:16,120 caracteres que poden ser representados con ASCII 70 00:03:16,120 --> 00:03:18,140 sistema de codificación. 71 00:03:18,140 --> 00:03:21,480 Entón 128 caracteres parece moito, non? 72 00:03:21,480 --> 00:03:24,180 Ben, lembre que hai 26 letras minúsculas en 73 00:03:24,180 --> 00:03:29,260 Inglés, máis 26 letras maiúsculas, 10 díxitos, personaxes 74 00:03:29,260 --> 00:03:31,470 32 signos de puntuación e caracteres especiais, 75 00:03:31,470 --> 00:03:33,430 e un carácter de espazo. 76 00:03:33,430 --> 00:03:37,050 >> Isto pon en 95, polo tanto, temos outros 33 personaxes que 77 00:03:37,050 --> 00:03:38,400 pode representar. 78 00:03:38,400 --> 00:03:39,900 >> Entón o que queda? 79 00:03:39,900 --> 00:03:43,130 Ben, os días de desenvolvemento de ASCII, teletipo 80 00:03:43,130 --> 00:03:45,080 máquinas, que son máquinas de escribir que son usados ​​para 81 00:03:45,080 --> 00:03:48,040 enviar mensaxes a través dunha rede, foron xeneralizadas. 82 00:03:48,040 --> 00:03:50,030 E estas máquinas tiñan caracteres adicionais utilizados para 83 00:03:50,030 --> 00:03:52,890 controlalos, por exemplo, para dicirlles cando para mover o 84 00:03:52,890 --> 00:03:57,620 imprimir cabeza para baixo unha liña, a liña de alimentación ou a clave nova liña, 85 00:03:57,620 --> 00:04:00,440 cando se cambiar para a marxe esquerda, o retorno de coche, 86 00:04:00,440 --> 00:04:04,890 ou simplemente devolve-chave, e cando volten un espazo, o 87 00:04:04,890 --> 00:04:07,760 carácter de retroceso, e así por diante. 88 00:04:07,760 --> 00:04:10,250 >> Estes personaxes son chamados de caracteres de control, e 89 00:04:10,250 --> 00:04:12,680 constitúen o resto do conxunto de ASCII. 90 00:04:12,680 --> 00:04:15,230 Entón, se olharmos para unha táboa ASCII, vemos que o primeiro 91 00:04:15,230 --> 00:04:18,800 32 números, de cero a 31, están reservados para control 92 00:04:18,800 --> 00:04:20,200 caracteres. 93 00:04:20,200 --> 00:04:23,420 Pero nós só dixo que había 33 caracteres de control. 94 00:04:23,420 --> 00:04:24,780 Cal é o problema? 95 00:04:24,780 --> 00:04:29,350 Ben, o número cero e 127, o primeiro eo último da 96 00:04:29,350 --> 00:04:32,560 Conxunto ASCII, ten patróns de bits especiais, todos os ceros e todo 97 00:04:32,560 --> 00:04:34,710 os, respectivamente. 98 00:04:34,710 --> 00:04:36,860 >> Os proxectos do ASCII decidiu, por tanto, a 99 00:04:36,860 --> 00:04:39,610 preservar eses números extra para caracteres especiais, 100 00:04:39,610 --> 00:04:43,310 ou sexa, o carácter nulo eo carácter DEL. 101 00:04:43,310 --> 00:04:46,340 Nula e DEL foron destinados para a edición de cinta de papel, que adoitaba 102 00:04:46,340 --> 00:04:48,930 ser unha forma común de almacenamento de datos. 103 00:04:48,930 --> 00:04:51,850 Cinta de papel foi, literalmente, só unha franxa grande de papel, e en 104 00:04:51,850 --> 00:04:53,760 intervalos regulares na cinta, que socar 105 00:04:53,760 --> 00:04:55,430 buratos para almacenamento de datos. 106 00:04:55,430 --> 00:04:58,720 Dependendo da anchura da banda, cada columna sería 107 00:04:58,720 --> 00:05:03,186 capaz de acomodar cinco, seis, sete, ou oito bits. 108 00:05:03,186 --> 00:05:05,930 >> Para representar un bit cero, non faría nada para a cinta, que 109 00:05:05,930 --> 00:05:07,930 basta deixar un espazo en branco. 110 00:05:07,930 --> 00:05:10,560 Para un pouco un, perforar un buraco. 111 00:05:10,560 --> 00:05:12,980 O carácter nulo sería só deixar unha columna en branco, 112 00:05:12,980 --> 00:05:14,480 indicando todos os ceros. 113 00:05:14,480 --> 00:05:17,250 E o personaxe DEL daría un zócolo dunha columna chea de buratos 114 00:05:17,250 --> 00:05:18,550 a través da súa cinta. 115 00:05:18,550 --> 00:05:21,300 Como resultado, pode utilizar o personaxe DEL para borrar 116 00:05:21,300 --> 00:05:22,440 información. 117 00:05:22,440 --> 00:05:25,060 Imaxina ter unha cédula electoral debidamente cuberto e logo 118 00:05:25,060 --> 00:05:27,180 perforación todos os buratos unpunched. 119 00:05:27,180 --> 00:05:29,410 >> Vostede invalidar a votación, porque é imposible 120 00:05:29,410 --> 00:05:31,820 dicir que os votos eran orixinais. 121 00:05:31,820 --> 00:05:34,720 Mentres o personaxe DEL se usa aínda é o moderno 122 00:05:34,720 --> 00:05:37,980 Tecla Delete, o carácter nulo pasou a ser utilizado como o 123 00:05:37,980 --> 00:05:40,010 carácter de finalización para cadeas C e 124 00:05:40,010 --> 00:05:41,990 algúns outros formatos de datos. 125 00:05:41,990 --> 00:05:45,140 Pode coñece-lo como o cero barra invertida, 126 00:05:45,140 --> 00:05:47,720 xa que é a forma na que representa-lo por escrito. 127 00:05:47,720 --> 00:05:49,580 Entón, de volta á nosa táboa ASCII. 128 00:05:49,580 --> 00:05:52,770 Tras os primeiros 32 carácteres de control vén a 95 129 00:05:52,770 --> 00:05:54,280 caracteres imprimíveis. 130 00:05:54,280 --> 00:05:55,800 >> Hai algunhas decisións de deseño frías por valor de 131 00:05:55,800 --> 00:05:57,330 falando aquí. 132 00:05:57,330 --> 00:06:00,810 En primeiro lugar, os díxitos decimais, de cero a nove, 133 00:06:00,810 --> 00:06:04,050 corresponden aos números 48 a 57, o que parece 134 00:06:04,050 --> 00:06:06,980 banal, ata que ollar para os números 48 a 57 135 00:06:06,980 --> 00:06:09,080 escrito en notación binaria. 136 00:06:09,080 --> 00:06:11,530 Se facemos iso, entón vemos que o personaxe díxito, 137 00:06:11,530 --> 00:06:22,320 cero, corresponde a 0110000, un mapas de 0110001, de dous a 138 00:06:22,320 --> 00:06:26,640 0110010, e así por diante. 139 00:06:26,640 --> 00:06:27,950 Vexa o defecto? 140 00:06:27,950 --> 00:06:30,170 Cada personaxe díxito é mapeada polo seu correspondente 141 00:06:30,170 --> 00:06:35,170 equivalente en notación binaria, prefixo 011. 142 00:06:35,170 --> 00:06:38,820 A continuación, entender que as maiúsculas comezar aos 65 anos, 143 00:06:38,820 --> 00:06:41,310 con A maiúsculo, pero as letras minúsculas 144 00:06:41,310 --> 00:06:43,010 non comezar ata 97. 145 00:06:43,010 --> 00:06:45,580 Polo tanto, hai 32 espazos entre elas. 146 00:06:45,580 --> 00:06:47,000 Isto parece raro. 147 00:06:47,000 --> 00:06:49,500 Son só 26 letras no alfabeto. 148 00:06:49,500 --> 00:06:51,410 >> Por que separa-los así? 149 00:06:51,410 --> 00:06:53,960 De novo, se olharmos para as representacións binarias, podemos 150 00:06:53,960 --> 00:06:55,230 ver un estándar. 151 00:06:55,230 --> 00:07:01,360 Letras maiúsculas A é representado por 1000001, e as letras minúsculas son un 152 00:07:01,360 --> 00:07:05,810 representado por 1.100.001. 153 00:07:05,810 --> 00:07:12,770 Maiúscula B é representada por 1000010, e é minúscula 154 00:07:12,770 --> 00:07:17,280 representado por 1.100.010. 155 00:07:17,280 --> 00:07:19,440 Pode dicir o que está a suceder aquí? 156 00:07:19,440 --> 00:07:22,470 O pouco que é o segundo desde a esquerda, en dous para o 157 00:07:22,470 --> 00:07:26,510 quintos, a posición de 32ths, é 0 para todas as maiúsculas 158 00:07:26,510 --> 00:07:30,120 letras, e 1 para todas as letras minúsculas. 159 00:07:30,120 --> 00:07:33,130 >> Isto significa que a conversión de maiúsculas a minúsculas e 160 00:07:33,130 --> 00:07:36,000 viceversa, é unha cuestión de un flip-bit simple. 161 00:07:36,000 --> 00:07:38,380 Así que nos leva ao fin da táboa ASCII. 162 00:07:38,380 --> 00:07:40,700 Podes pensar en calquera cousa que teña esquecido? 163 00:07:40,700 --> 00:07:42,510 Ben, o que dicir do enye español, ou o 164 00:07:42,510 --> 00:07:44,630 Alfabetos cirílico ou grego? 165 00:07:44,630 --> 00:07:46,610 E como a carácteres chineses? 166 00:07:46,610 --> 00:07:49,050 Hai moito que se deixou de fóra da ASCII. 167 00:07:49,050 --> 00:07:51,920 Con todo, outro estándar chamado Unicode foi 168 00:07:51,920 --> 00:07:53,040 deseñado para cubrir todos estes 169 00:07:53,040 --> 00:07:54,840 personaxes e moito máis. 170 00:07:54,840 --> 00:07:57,040 >> Pero iso é un tema para outra hora. 171 00:07:57,040 --> 00:07:58,500 O meu nome é Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Este é CS50.