1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Hardison: En el video en binario, se muestra cómo 2 00:00:09,290 --> 00:00:12,540 representar el conjunto de números enteros, de cero hacia arriba, 3 00:00:12,540 --> 00:00:15,110 usando sólo los dígitos cero y uno. 4 00:00:15,110 --> 00:00:17,890 En este video, vamos a utilizar la notación binaria para 5 00:00:17,890 --> 00:00:21,160 representar texto, cartas y demás, así como. 6 00:00:21,160 --> 00:00:22,810 >> ¿Por qué nos tomamos la molestia de hacer esto? 7 00:00:22,810 --> 00:00:25,450 Pues bien, bajo el capó, un equipo único realmente 8 00:00:25,450 --> 00:00:29,070 entiende ceros y unos, los dígitos binarios, ya que estos 9 00:00:29,070 --> 00:00:32,100 se puede representar fácilmente con cosas electromagnéticas. 10 00:00:32,100 --> 00:00:35,040 >> Por ejemplo, piense en la memoria del ordenador como un largo 11 00:00:35,040 --> 00:00:37,810 cadena de bombillas, por el que cada individuo bombilla 12 00:00:37,810 --> 00:00:40,680 representa un cero si está apagado, y el otro un 13 00:00:40,680 --> 00:00:42,230 si está activada. 14 00:00:42,230 --> 00:00:44,730 En lugar de utilizar un grupo de bombillas, algunas modernas 15 00:00:44,730 --> 00:00:46,990 memoria hace esto usando condensadores que tienen un bajo 16 00:00:46,990 --> 00:00:49,120 cargar para representar un cero y una carga de alto 17 00:00:49,120 --> 00:00:50,780 para representar un uno. 18 00:00:50,780 --> 00:00:52,510 >> Existen otras técnicas también. 19 00:00:52,510 --> 00:00:55,500 De todos modos, con el fin de almacenar nada en la memoria, es necesario 20 00:00:55,500 --> 00:00:57,590 primero convertirlo en algo que puede ser realmente 21 00:00:57,590 --> 00:01:00,140 representado en el hardware físico. 22 00:01:00,140 --> 00:01:02,450 Así que vamos a pensar en cómo podríamos representar letras con 23 00:01:02,450 --> 00:01:04,230 binario notación. 24 00:01:04,230 --> 00:01:08,141 En Inglés, tenemos 26 letras en el alfabético, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, y así sucesivamente, a través de Z. Se puede asignar a cada uno de los 26 00:01:12,930 --> 00:01:16,650 éstos un número, por ejemplo cero a través de 25, y a continuación, utilizando 27 00:01:16,650 --> 00:01:18,880 notación binaria, se puede representar como un número cada 28 00:01:18,880 --> 00:01:20,890 secuencia de ceros y unos. 29 00:01:20,890 --> 00:01:22,420 Eso no es tan malo. 30 00:01:22,420 --> 00:01:25,050 Sin embargo, eso no va a ser suficiente. 31 00:01:25,050 --> 00:01:27,680 Con este sistema, en realidad no puede distinguir entre los 32 00:01:27,680 --> 00:01:29,830 las letras mayúsculas y minúsculas. 33 00:01:29,830 --> 00:01:32,140 Si queremos que nuestro equipo sea capaz de diferenciar entre 34 00:01:32,140 --> 00:01:36,020 los dos casos, entonces necesitamos un adicional de 26 números. 35 00:01:36,020 --> 00:01:38,700 Y ¿qué pasa con puntos, comas y 36 00:01:38,700 --> 00:01:40,390 otros signos de puntuación? 37 00:01:40,390 --> 00:01:43,560 >> En mi teclado, tengo 32 de ellos, incluyendo todos los 38 00:01:43,560 --> 00:01:46,800 caracteres especiales como el símbolo de intercalación y el símbolo de unión. 39 00:01:46,800 --> 00:01:49,700 Eso es sin incluir los caracteres de dígitos, del cero al nueve, 40 00:01:49,700 --> 00:01:51,840 ya que todavía quiero ser capaz de escribir números en decimal 41 00:01:51,840 --> 00:01:54,840 anotación en el ordenador, incluso si el equipo realmente sólo 42 00:01:54,840 --> 00:01:57,830 entiende la notación binaria bajo el capó. 43 00:01:57,830 --> 00:02:00,620 >> Y, por último, vamos a necesitar para representar un carácter de espacio para 44 00:02:00,620 --> 00:02:02,450 que nuestra barra espaciadora funciona. 45 00:02:02,450 --> 00:02:04,920 Así que encontrar la manera de representar el texto en el ordenador 46 00:02:04,920 --> 00:02:08,400 toma un poco más de lo que podría haber pensado inicialmente. 47 00:02:08,400 --> 00:02:11,710 Además, asumimos que luego llegar a nuestra 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 Sin embargo decidimos para codificar los caracteres será inevitablemente 50 00:02:17,470 --> 00:02:20,630 arbitrario, como vimos antes, cuando hablamos acerca del uso de la 51 00:02:20,630 --> 00:02:23,730 números cero a 25 para representar las letras A 52 00:02:23,730 --> 00:02:26,850 a la Z. ¿Por qué no usamos el 10 a 35 por lo que podemos ahorrar 53 00:02:26,850 --> 00:02:29,350 cero al nueve dígitos para los personajes? 54 00:02:29,350 --> 00:02:31,590 >> No hay ninguna razón real, que acaba de elegir lo que parecía 55 00:02:31,590 --> 00:02:33,770 lo mejor para nosotros. 56 00:02:33,770 --> 00:02:37,650 Ya en la década de 1960, esto era un problema real. 57 00:02:37,650 --> 00:02:39,370 Los diferentes fabricantes de computadoras utilizaban 58 00:02:39,370 --> 00:02:41,910 diferentes esquemas de codificación, y esta comunicación se 59 00:02:41,910 --> 00:02:44,340 entre diferentes máquinas de una tarea muy difícil. 60 00:02:44,340 --> 00:02:47,810 El American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 formó un comité para desarrollar un esquema común. 62 00:02:50,210 --> 00:02:53,780 Y en 1963, el Código Estándar Americano para la Información 63 00:02:53,780 --> 00:02:58,600 Intercambio, más comúnmente conocido como ASCII, nació. 64 00:02:58,600 --> 00:03:01,360 >> ASCII fue diseñado como una codificación de siete bits, la cual 65 00:03:01,360 --> 00:03:03,800 significa que cada carácter está representado por una combinación 66 00:03:03,800 --> 00:03:06,070 de siete ceros y unos. 67 00:03:06,070 --> 00:03:09,670 Con esos dos valores posibles, cero o uno, para cada uno 68 00:03:09,670 --> 00:03:14,040 de los siete bits, hay dos a la séptima o 128 69 00:03:14,040 --> 00:03:16,120 caracteres que se pueden representar con el ASCII 70 00:03:16,120 --> 00:03:18,140 esquema de codificación. 71 00:03:18,140 --> 00:03:21,480 Así que 128 caracteres suena a mucho, ¿verdad? 72 00:03:21,480 --> 00:03:24,180 Bueno, recuerda que hay 26 letras minúsculas en 73 00:03:24,180 --> 00:03:29,260 Inglés, otros 26 letras mayúsculas, 10 caracteres dígitos, 74 00:03:29,260 --> 00:03:31,470 32 puntuacion y caracteres especiales, 75 00:03:31,470 --> 00:03:33,430 y un carácter de espacio. 76 00:03:33,430 --> 00:03:37,050 >> Eso nos pone a 95, así que tenemos otros 33 personajes que 77 00:03:37,050 --> 00:03:38,400 puede representar. 78 00:03:38,400 --> 00:03:39,900 >> Entonces, ¿qué nos queda? 79 00:03:39,900 --> 00:03:43,130 Pues bien, en los días del desarrollo de ASCII, teletipo 80 00:03:43,130 --> 00:03:45,080 máquinas, que son máquinas de escribir que se utilizan para 81 00:03:45,080 --> 00:03:48,040 enviar mensajes a través de una red, se generalizaron. 82 00:03:48,040 --> 00:03:50,030 Y estas máquinas tenían caracteres adicionales que se utilizan para 83 00:03:50,030 --> 00:03:52,890 controlan, por ejemplo, para saber cuándo para mover el 84 00:03:52,890 --> 00:03:57,620 el cabezal de impresión hacia abajo una línea, la línea de alimentación o la clave nueva línea, 85 00:03:57,620 --> 00:04:00,440 cuando para pasar a la margen izquierda, el retorno de carro, 86 00:04:00,440 --> 00:04:04,890 o simplemente volver llave, y cuando para retroceder un espacio, 87 00:04:04,890 --> 00:04:07,760 carácter de retroceso, y así sucesivamente. 88 00:04:07,760 --> 00:04:10,250 >> Estos caracteres se denominan caracteres de control, y 89 00:04:10,250 --> 00:04:12,680 constituyen el resto del conjunto ASCII. 90 00:04:12,680 --> 00:04:15,230 Así que si nos fijamos en una tabla ASCII, vemos que el primer 91 00:04:15,230 --> 00:04:18,800 32 números, del cero al 31, se reservan para el control 92 00:04:18,800 --> 00:04:20,200 personajes. 93 00:04:20,200 --> 00:04:23,420 Pero acaba de decir que había 33 caracteres de control. 94 00:04:23,420 --> 00:04:24,780 ¿Cuál es el trato? 95 00:04:24,780 --> 00:04:29,350 Así, el número cero y 127, el primero y el último de la 96 00:04:29,350 --> 00:04:32,560 Conjunto ASCII, tienen patrones de bits especiales, todos ceros y todos 97 00:04:32,560 --> 00:04:34,710 Lo, respectivamente. 98 00:04:34,710 --> 00:04:36,860 >> Los diseñadores de ASCII decidió, por lo tanto, a 99 00:04:36,860 --> 00:04:39,610 preservar a estos números extras caracteres especiales, 100 00:04:39,610 --> 00:04:43,310 a saber, el carácter nulo y el carácter DEL. 101 00:04:43,310 --> 00:04:46,340 Null y DEL estaban destinados para la edición de cinta de papel, que solía 102 00:04:46,340 --> 00:04:48,930 a ser una forma común de almacenamiento de datos. 103 00:04:48,930 --> 00:04:51,850 La cinta de papel era literalmente una larga tira de papel, y en 104 00:04:51,850 --> 00:04:53,760 intervalos regulares en la cinta, había un puñetazo 105 00:04:53,760 --> 00:04:55,430 agujeros para almacenar datos. 106 00:04:55,430 --> 00:04:58,720 Dependiendo de la anchura de la cinta, cada columna sería 107 00:04:58,720 --> 00:05:03,186 con capacidad para cinco, seis, siete u ocho bits. 108 00:05:03,186 --> 00:05:05,930 >> Para representar un bit cero, harías nada en la cinta, que te 109 00:05:05,930 --> 00:05:07,930 simplemente dejar un espacio en blanco. 110 00:05:07,930 --> 00:05:10,560 Por un poco uno, que te perfore un agujero. 111 00:05:10,560 --> 00:05:12,980 El carácter nulo acaba de salir de una columna en blanco, 112 00:05:12,980 --> 00:05:14,480 lo que indica todos los ceros. 113 00:05:14,480 --> 00:05:17,250 Y el personaje DEL sería perforar una columna llena de agujeros 114 00:05:17,250 --> 00:05:18,550 a través de la cinta. 115 00:05:18,550 --> 00:05:21,300 Como resultado de ello, puede utilizar el carácter DEL para borrar 116 00:05:21,300 --> 00:05:22,440 información. 117 00:05:22,440 --> 00:05:25,060 Imagínese celebrar votación en las elecciones cumplimentada y luego 118 00:05:25,060 --> 00:05:27,180 punzonado todos los agujeros sin perforar. 119 00:05:27,180 --> 00:05:29,410 >> Usted invalidar la votación, porque es imposible 120 00:05:29,410 --> 00:05:31,820 decir lo que los votos originales eran. 121 00:05:31,820 --> 00:05:34,720 Mientras que el carácter DEL todavía se utiliza es la moderna 122 00:05:34,720 --> 00:05:37,980 Eliminar clave, el carácter nulo llegó a ser usado como el 123 00:05:37,980 --> 00:05:40,010 Carácter de terminación de cadenas de C y 124 00:05:40,010 --> 00:05:41,990 algunos otros formatos de datos. 125 00:05:41,990 --> 00:05:45,140 Es posible que lo conocen como el carácter barra invertida cero, 126 00:05:45,140 --> 00:05:47,720 ya que así es como lo representamos por escrito. 127 00:05:47,720 --> 00:05:49,580 Así que volvemos a nuestra tabla ASCII. 128 00:05:49,580 --> 00:05:52,770 Después de los primeros 32 caracteres de control vienen los 95 129 00:05:52,770 --> 00:05:54,280 caracteres imprimibles. 130 00:05:54,280 --> 00:05:55,800 >> Hay un par de decisiones de diseño fresco por valor de 131 00:05:55,800 --> 00:05:57,330 hablando aquí. 132 00:05:57,330 --> 00:06:00,810 En primer lugar, los personajes dígito decimal, el cero al nueve, 133 00:06:00,810 --> 00:06:04,050 corresponden a los números 48 a 57, que parece 134 00:06:04,050 --> 00:06:06,980 nada especial hasta que nos fijamos en los 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 Si hacemos eso, entonces vemos que el carácter de dígito, 137 00:06:11,530 --> 00:06:22,320 cero, corresponde a 0110000, uno mapas a 0110001, de dos a 138 00:06:22,320 --> 00:06:26,640 0110010, y así sucesivamente. 139 00:06:26,640 --> 00:06:27,950 Ver el patrón? 140 00:06:27,950 --> 00:06:30,170 Cada carácter de dígito se asigna a su correspondiente 141 00:06:30,170 --> 00:06:35,170 equivalente en notación binaria, con el prefijo 011. 142 00:06:35,170 --> 00:06:38,820 El siguiente, te das cuenta de que las letras mayúsculas comenzar a los 65, 143 00:06:38,820 --> 00:06:41,310 con mayúscula, pero las letras minúsculas 144 00:06:41,310 --> 00:06:43,010 no empiece hasta 97. 145 00:06:43,010 --> 00:06:45,580 Así que hay 32 espacios en el medio. 146 00:06:45,580 --> 00:06:47,000 Eso me parece extraño. 147 00:06:47,000 --> 00:06:49,500 Son sólo 26 letras en el alfabeto. 148 00:06:49,500 --> 00:06:51,410 >> ¿Por qué dividir así? 149 00:06:51,410 --> 00:06:53,960 De nuevo, si nos fijamos en las representaciones binarias, podemos 150 00:06:53,960 --> 00:06:55,230 ver un patrón. 151 00:06:55,230 --> 00:07:01,360 Mayúsculas A está representado por 1000001, y en minúsculas es una 152 00:07:01,360 --> 00:07:05,810 representado por 1100001. 153 00:07:05,810 --> 00:07:12,770 Mayúscula B está representado por 1000010, y b es minúscula 154 00:07:12,770 --> 00:07:17,280 representado por 1100010. 155 00:07:17,280 --> 00:07:19,440 ¿Se puede decir lo que está pasando aquí? 156 00:07:19,440 --> 00:07:22,470 El bit es la segunda de la izquierda, en los dos a la 157 00:07:22,470 --> 00:07:26,510 quintas partes, de la posición de 32ths, es 0 para todas las mayúsculas 158 00:07:26,510 --> 00:07:30,120 cartas, y 1 para todas las letras minúsculas. 159 00:07:30,120 --> 00:07:33,130 >> Eso significa que la conversión de mayúsculas a minúsculas, y 160 00:07:33,130 --> 00:07:36,000 viceversa, es una cuestión de un flip bit simple. 161 00:07:36,000 --> 00:07:38,380 Esto nos lleva al final de la tabla ASCII. 162 00:07:38,380 --> 00:07:40,700 ¿Puedes pensar en cualquier cosa que hayamos olvidado? 163 00:07:40,700 --> 00:07:42,510 Bueno, ¿qué pasa con la enye españolas, o el 164 00:07:42,510 --> 00:07:44,630 Alfabetos griego o cirílico? 165 00:07:44,630 --> 00:07:46,610 ¿Y qué tal chino personajes? 166 00:07:46,610 --> 00:07:49,050 Hay mucho que se ha quedado fuera de ASCII. 167 00:07:49,050 --> 00:07:51,920 Sin embargo, otro estándar Unicode ha sido llamado 168 00:07:51,920 --> 00:07:53,040 desarrollado para cubrir todos estos 169 00:07:53,040 --> 00:07:54,840 personajes y muchos más. 170 00:07:54,840 --> 00:07:57,040 >> Pero eso es un tema para otro momento. 171 00:07:57,040 --> 00:07:58,500 Mi nombre es Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Esto es CS50.