[Powered by Google Translate] NATE Hardison: No vídeo em binário, vamos mostrar como representam o conjunto de números inteiros, de zero em cima, utilizando apenas os dígitos de zero e um. Neste vídeo, vamos usar a notação binária para representar texto, letras e tal, também. Por que nos preocupar para fazer isso? Bem, sob o capô, um computador só é realmente entende zeros e uns, os dígitos binários, uma vez que estes pode ser representado facilmente com coisas electromagnéticos. Por exemplo, pensar em memória do seu computador como uma longa seqüência de lâmpadas, em que cada indivíduo lâmpada representa um zero se ele está desligado, e um se ele está ligado. Em vez de usar um monte de lâmpadas, algumas moderna memória faz isso usando capacitores que possuem um baixo cobrar para representar um zero e uma alta carga para representar um. Há outras técnicas também. De qualquer forma, a fim de armazenar qualquer coisa na memória, precisamos primeiro convertê-lo em algo que possa ser realmente representados no hardware físico. Então, vamos pensar sobre como podemos representar letras com notação binária. Em Inglês, temos 26 letras no alfabética, A, B, C, D, e assim por diante, até a Z. Podemos atribuir a cada um dos estes um número, digamos zero a 25, e em seguida, usando notação binária, podemos representar cada número como uma seqüência de zeros e uns. Isso não é muito ruim. No entanto, isso não vai ser suficiente. Com este sistema, não podemos realmente distinguir entre letras maiúsculas e minúsculas. Se queremos que o nosso computador para ser capaz de diferenciar entre os dois casos, então precisamos de um adicional de 26 números. E o que dizer de períodos, vírgulas e outros sinais de pontuação? No meu teclado, eu tenho 32 deles, incluindo todos os caracteres especiais, como o acento circunflexo eo comercial. Isso não incluindo os caracteres de dígitos, de zero a nove, uma vez que ainda quero ser capaz de digitar números em decimal notação no computador, mesmo que o computador apenas realmente entende notação binária sob o capô. E, finalmente, vamos ter de representar um caractere de espaço para que a nossa barra de espaço funciona. Então, para descobrir como representar texto no computador Demora um pouco mais do que poderíamos ter pensado inicialmente. Além disso, suponha que depois vem com a nossa própria codificação esquema para representar caracteres como números. No entanto, decidir para codificar caracteres será inevitavelmente arbitrário, como vimos anteriormente, quando falamos sobre o uso do números de zero a 25 para representar as letras A a Z. Por que não usar de 10 a 35, de modo que podemos salvar zero a nove dígitos para os personagens? Não há nenhuma razão real, que apenas escolheu o que parecia melhor para nós. Voltar no início de 1960, este foi um problema real. Fabricantes de computadores diferentes estavam usando diferentes esquemas de codificação, e esta comunicação feita entre máquinas diferentes uma tarefa muito difícil. O American National Standards Institute, ANSI, formou um comitê para desenvolver um regime comum. E em 1963, o Código padrão americano para a Informação Interchange, mais comumente conhecido como ASCII, nasceu. ASCII foi concebido como uma codificação de sete bits, que significa que cada personagem é representado por uma combinação de sete zeros e uns. Com estes dois valores possíveis, zero ou um, para cada de sete bits, existem dois para a sétima ou 128 caracteres que podem ser representados com o ASCII esquema de codificação. Então 128 caracteres parece muito, certo? Bem, lembre-se que existem 26 letras minúsculas em Inglês, mais 26 letras maiúsculas, 10 dígitos, personagens 32 sinais de pontuação e caracteres especiais, e um caractere de espaço. Isso nos coloca em 95, portanto, nós temos outros 33 personagens que pode representar. Então o que resta? Bem, nos dias de desenvolvimento de ASCII, teletipo máquinas, que são máquinas de escrever que são usados ​​para enviar mensagens através de uma rede, foram generalizadas. E estas máquinas tinham caracteres adicionais utilizados para controlá-los, por exemplo, para dizer-lhes quando para movimentar o imprimir cabeça para baixo uma linha, a linha de alimentação ou a chave nova linha, quando se mudar para a margem esquerda, o retorno de carro, ou simplesmente devolvê-chave, e quando voltar um espaço, o caractere de retrocesso, e assim por diante. Esses personagens são chamados de caracteres de controle, e eles constituem o restante do conjunto de ASCII. Então, se olharmos para uma tabela ASCII, vemos que o primeiro 32 números, de zero a 31, são reservados para controle caracteres. Mas nós só disse que havia 33 caracteres de controle. Qual é o problema? Bem, o número zero e 127, o primeiro eo último da Conjunto ASCII, tem padrões de bits especiais, todos os zeros e tudo os, respectivamente. Os projetistas do ASCII decidiu, portanto, a preservar esses números extra para caracteres especiais, ou seja, o caráter nulo eo caráter DEL. Nula e DEL foram destinados para a edição de fita de papel, que costumava ser uma forma comum de armazenamento de dados. Fita de papel foi, literalmente, apenas uma faixa grande de papel, e em intervalos regulares na fita, você socar buracos para armazenamento de dados. Dependendo da largura da fita, cada coluna seria capaz de acomodar cinco, seis, sete, ou oito bits. Para representar um bit zero, você não faria nada para a fita, você basta deixar um espaço em branco. Para um pouco um, você perfurar um buraco. O caractere nulo seria apenas deixar uma coluna em branco, indicando todos os zeros. E o personagem DEL daria um soco de uma coluna cheia de buracos através de sua fita. Como resultado, você pode usar o personagem DEL para apagar informação. Imagine tomar uma cédula eleitoral devidamente preenchido e depois perfuração todos os furos unpunched. Você invalidar a votação, porque é impossível dizer que os votos eram originais. Enquanto o personagem DEL é usado ainda é o moderno Tecla Delete, o caractere nulo passou a ser utilizado como o caractere de término para strings C e alguns outros formatos de dados. Você pode conhecê-lo como o zero barra invertida, já que é a forma como representá-lo por escrito. Então, de volta à nossa tabela ASCII. Após os primeiros 32 caracteres de controle vem a 95 caracteres imprimíveis. Há algumas decisões de design frias no valor de falando aqui. Primeiro, os dígitos decimais, de zero a nove, correspondem aos números 48 a 57, o que parece banal, até que olhar para os números 48 a 57 escrito em notação binária. Se fizermos isso, então vemos que o personagem dígito, zero, corresponde a 0110000, um mapas de 0110001, de dois a 0110010, e assim por diante. Veja o padrão? Cada personagem dígito é mapeada pelo seu correspondente equivalente em notação binária, prefixo 011. A seguir, você percebe que as letras maiúsculas começar aos 65 anos, com A maiúsculo, mas as letras minúsculas não começar até 97. Portanto, há 32 espaços entre elas. Isso parece estranho. Eles são apenas 26 letras no alfabeto. Por que separá-los assim? Novamente, se olharmos para as representações binárias, podemos ver um padrão. Letras maiúsculas A é representado por 1000001, e as letras minúsculas são um representado por 1.100.001. Maiúscula B é representada por 1000010, e b é minúscula representado por 1.100.010. Pode dizer o que está acontecendo aqui? O pouco que é o segundo a partir da esquerda, em dois para o quintos, para a posição de 32ths, é 0 para todas as letras maiúsculas letras, e 1 para todas as letras minúsculas. Isso significa que a conversão de maiúsculas para minúsculas, e vice-versa, é uma questão de um flip-bit simples. Assim que nos leva ao fim da tabela ASCII. Você pode pensar em qualquer coisa que tenha esquecido? Bem, o que dizer do enye espanhol, ou o Alfabetos cirílico ou grego? E quanto a caracteres chineses? Há muito que foi deixado de fora da ASCII. No entanto, um outro padrão chamado Unicode tem sido desenvolvido para cobrir todos estes personagens e muito mais. Mas isso é um assunto para outra hora. Meu nome é Nate Hardison. Este é CS50.