Os computadores usam números. As pessoas usam letras e símbolos. Precisamos de uma ponte. O ASCII é essa ponte. O ASCII transforma cada letra ou símbolo em um número. O computador armazena o número. Quando lemos, o computador exibe a letra novamente. É assim que o texto funciona em muitos arquivos e aplicativos.
Um computador funciona com eletricidade. Ele enxerga dois estados: ligado e desligado. Chamamos esses estados de bits . Um bit é um 0 ou um 1. Muitos bits juntos formam números maiores. Oito bits formam um byte . Com bits, podemos contar. Com a contagem, podemos nomear coisas. O ASCII usa a contagem para nomear letras e símbolos.
Um bit permite duas escolhas. Dois bits permitem quatro escolhas. Em matemática, essa ideia é representada por \(\;2^n\) . Para \(n=7\) , obtemos \(2^7 = 128\) escolhas. Para \(n=8\) , obtemos \(2^8 = 256\) escolhas. O ASCII usa 7 bits. Isso resulta em 128 itens nomeados. Posteriormente, foram criados conjuntos de 8 bits com 256 itens. Esses são chamados de ASCII estendido .
ASCII significa American Standard Code for Information Interchange (Código Padrão Americano para Intercâmbio de Informação) . Surgiu na década de 1960 e foi criado para as primeiras impressoras, teletipos e computadores. Atribui um número a cada letra, número, espaço e alguns símbolos. Também atribui números especiais a ações como nova linha . A primeira versão usava 7 bits, portanto, tinha números de 0 a 127.
Observe algo interessante. As letras minúsculas são 32 unidades maiores que suas correspondentes maiúsculas. Por exemplo, \(\;97 - 65 = 32\) . Portanto, 'a' é 32 unidades maior que 'A'. 'b' é 32 unidades maior que 'B', e assim por diante. Esse padrão facilita algumas tarefas no computador.
Ao pressionar a tecla Enter, seu computador pode enviar LF, CR ou ambos, dependendo do sistema. Muitas ferramentas da internet usam LF. Alguns sistemas antigos usavam CR e LF juntos.
Podemos escrever números de diferentes maneiras. O sistema decimal é a forma normal de contarmos, usando os dígitos de 0 a 9. O sistema binário usa apenas 0 e 1. O sistema hexadecimal usa de 0 a 9 e de A a F.
Como o binário representa 65 para 'A'? Observe os bits em 01000001. O bit mais à esquerda é para 128. Em seguida, 64, 32, 16, 8, 4, 2, 1. Apenas 64 e 1 estão ligados. Portanto \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .
Pressione uma tecla. O teclado envia um código para o computador. O sistema o converte em um número correspondente a um caractere. Para muitas teclas, esse número é o código ASCII. O aplicativo armazena o número na memória. Quando exibe o texto, ele consulta o número e desenha a letra correspondente. Ao salvar, os números são inseridos no arquivo.
Pense na mensagem "Oi!" . As letras são H, i e !. Seus números ASCII são 72, 105 e 33. Em binário, são 01001000, 01101001 e 00100001. A rede envia esses bits. O outro lado lê os bits. Vê os números. Mostra H, i e ! novamente. É assim que mensagens de texto simples se propagam.
As pessoas queriam mais símbolos. Queriam letras como é, ñ e ø. Queriam símbolos monetários como €. O conjunto de 7 bits tinha apenas 128 símbolos. Então, as pessoas usavam 8 bits. Com 8 bits, obtemos \(2^8 = 256\) símbolos. A metade superior, de 128 a 255, era usada para letras e símbolos extras. Mas havia um problema. Diferentes grupos escolhiam números diferentes para essas letras extras. Essas escolhas são chamadas de páginas de código .
Como as páginas de código são diferentes, o mesmo número pode exibir um símbolo diferente em outro computador. Essa confusão é chamada de mojibake . Ela se parece com caracteres estranhos. Essa é uma das razões pelas quais o mundo adotou o Unicode.
Unicode é um padrão abrangente que pode exibir diversos idiomas, símbolos matemáticos e emojis. Ele possui espaço para mais de um milhão de símbolos. Existem muitas maneiras de armazenar Unicode. Uma forma popular é o UTF-8 .
Com texto exclusivamente ASCII, cada caractere usa um byte. Portanto, a palavra "gato" usa 3 bytes. A frase "oi mãe" tem 6 caracteres, incluindo o espaço, então usa 6 bytes. Em matemática simples, \(\textrm{bytes ASCII} = \textrm{número de caracteres}\) .
Os computadores geralmente classificam sequências de caracteres pelos seus números. A ordem ASCII agrupa os elementos de uma determinada maneira.
Isso significa que "Zoo" vem antes de "apple" se compararmos os valores ASCII simples. A ordenação é feita por números, não pela pronúncia das palavras.
Observe que o símbolo " &" é representado pelo caractere "&". Seu número ASCII é 38. O sinal de mais (+) é 43. O sinal de menos (-) é 45.
As pessoas criam imagens usando apenas caracteres. Isso se chama arte ASCII . Aqui está um rostinho feito com caracteres ASCII.
:-) Um sorriso simples
(^_^) Cara amigável
o_O Surpreso
Cada elemento é composto apenas por caracteres como dois pontos, hífen e parênteses. Sem cores ou formas. Apenas texto.
O ASCII surgiu a partir dos teletipos e dos primeiros computadores. Em 1963, uma primeira versão foi acordada. Ela permitiu que muitas máquinas diferentes se comunicassem entre si. Com um código compartilhado, uma letra como A representava o mesmo número em todos os lugares. Isso facilitou o envio de mensagens e a impressão de texto.
O ASCII possui apenas 128 itens. Isso não é suficiente para todos os idiomas. Não consegue exibir chinês, hindi, árabe ou muitos outros alfabetos. Também não consegue exibir emojis. Além disso, não consegue exibir muitos símbolos matemáticos e musicais. Para esses casos, usamos o Unicode. O Unicode consegue exibir muitos alfabetos e símbolos. O UTF-8 é uma forma de armazená-los. A boa notícia é que todo texto ASCII funciona dentro do UTF-8. Portanto, os sistemas modernos conseguem ler o ASCII antigo com facilidade.
A maioria dos aplicativos espera o formato UTF-8. Mas quando um arquivo contém apenas letras e símbolos ASCII, ele permanece o mesmo em UTF-8. Os programadores gostam disso porque simplifica o código. Páginas da web, APIs e muitas ferramentas usam UTF-8, que inclui o ASCII sem alterações.
O ASCII é um conjunto de 7 bits. Isso significa até \(2^7 = 128\) caracteres diferentes. Um conjunto expandido com 8 bits tem \(2^8 = 256\) itens. Se o seu texto tiver apenas caracteres ASCII e \(n\) caracteres, ele usará \(n\) bytes. Em uma mensagem curta como "OK" , \(n = 2\) Portanto, ela usa 2 bytes quando armazenada como ASCII ou UTF-8.
Alguns caracteres ASCII executam ações e não são impressos. O espaço imprime em branco. Mas LF e CR movem o cursor. A tecla TAB pula para outra tecla. Quando abrimos um arquivo em um editor específico, ele pode exibir LF como \n. Esse símbolo não faz parte do ASCII em si. É uma forma que o editor usa para indicar a quebra de linha.
Imagine uma etiquetadora que imprime nomes. Ela lê o nome como caracteres. Ela transforma cada caractere em números ASCII. Ela armazena esses números na memória. Ela imprime as letras procurando como desenhar cada número. Se encontrar LF (10), ela passa para a próxima linha antes de imprimir mais.
Observe o caractere '!' novamente. Podemos escrever seu código de três maneiras. Decimal: 33. Binário: 00100001. Hexadecimal: 21. Em forma matemática, \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Cada forma representa o mesmo valor. Os aplicativos escolhem a forma que precisam. As pessoas geralmente leem em decimal. Os computadores preferem binário. Hexadecimal é uma forma abreviada para as pessoas lerem números binários.
O ASCII é pequeno e claro. Foi criado há muito tempo. Muitas ferramentas e protocolos foram construídos com base nele. Como os primeiros 128 códigos Unicode correspondem ao ASCII, o sistema ainda funciona hoje. É por isso que você pode abrir arquivos de texto muito antigos em um celular ou laptop novo e ver as mesmas letras.
Abra um arquivo com o texto "Olá" . Os bytes são os números ASCII 72 101 108 108 111. Em binário, eles são 01001000 01100101 01101100 01101100 01101111. O aplicativo lê cada número e desenha "Olá" na tela. Se o próximo número for 10, ele passa para uma nova linha antes de desenhar mais texto. É assim que o processo é simples e constante.
Pense no número 10. Em binário, é 00001010. Em decimal, é dez. Em ASCII, 10 é LF, a quebra de linha. Isso mostra como o mesmo número pode ser representado de maneiras diferentes. O significado vem de como usamos o número. Se dissermos que é um código de caractere, então 10 significa LF. Se dissermos que é apenas uma contagem de maçãs, então são dez maçãs. O contexto importa.
Enviaremos a palavra "Sun" de um dispositivo para outro. Os códigos são 'S' 83, 'u' 117 e 'n' 110. Em binário, 83 é 01010011, 117 é 01110101 e 110 é 01101110. Os bits viajam como sinais de Ligado e Desligado. O outro dispositivo converte os bits de volta em números. Em seguida, converte os números em letras. Ele exibe a palavra "Sun" . Se o próximo código for 32, trata-se de um espaço. Se o próximo for 33, trata-se de um ponto de exclamação (!). As regras permanecem as mesmas a cada vez. Esse é o poder de um código compartilhado.