[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.