Olá em binário. Código binário

Os computadores não entendem palavras e números da mesma forma que as pessoas. O software moderno permite que o usuário final ignore isso, mas nos níveis mais baixos o seu computador opera com um sinal elétrico binário que tem apenas dois estados: se há corrente ou não. Para “entender” dados complexos, seu computador deve codificá-los em formato binário.

O sistema binário é baseado em dois dígitos, 1 e 0, correspondentes aos estados ligado e desligado que seu computador pode entender. Você provavelmente está familiarizado com o sistema decimal. Ele usa dez dígitos, de 0 a 9, e depois passa para a próxima ordem para formar números de dois dígitos, sendo cada número dez vezes maior que o anterior. O sistema binário é semelhante, com cada dígito sendo duas vezes maior que o anterior.

Contando em formato binário

Na expressão binária, o primeiro dígito equivale a 1 no sistema decimal. O segundo dígito é 2, o terceiro é 4, o quarto é 8 e assim por diante - dobrando a cada vez. Somando todos esses valores você obterá o número no formato decimal.

1111 (em binário) = 8 + 4 + 2 + 1 = 15 (em decimal)

A contabilização de 0 nos dá 16 valores possíveis para quatro bits binários. Mova 8 bits e você obterá 256 valores possíveis. Isso ocupa muito mais espaço para representar, já que quatro dígitos decimais nos dão 10.000 valores possíveis. É claro que o código binário ocupa mais espaço, mas os computadores entendem os arquivos binários muito melhor do que o sistema decimal. E para algumas coisas, como processamento lógico, o binário é melhor que o decimal.

Deve-se dizer que existe outro sistema básico que é utilizado na programação: hexadecimal. Embora os computadores não operem em formato hexadecimal, os programadores o utilizam para representar endereços binários em um formato legível por humanos ao escrever código. Isso ocorre porque dois dígitos de um número hexadecimal podem representar um byte inteiro, o que significa que substituem oito dígitos em binário. O sistema hexadecimal usa os números de 0 a 9, bem como as letras de A a F, para criar seis dígitos adicionais.

Por que os computadores usam arquivos binários?

Resposta curta: hardware e leis da física. Cada caractere do seu computador é um sinal elétrico e, nos primórdios da computação, medir sinais elétricos era muito mais difícil. Fazia mais sentido distinguir apenas o estado “ligado”, representado por uma carga negativa, e o estado “desligado”, representado por uma carga positiva.

Para quem não sabe por que “desligado” é representado por carga positiva, é porque os elétrons têm carga negativa, e mais elétrons significam mais corrente com carga negativa.

Assim, os primeiros computadores do tamanho de uma sala usavam arquivos binários para criar seus sistemas e, embora usassem equipamentos mais antigos e volumosos, trabalhavam com base nos mesmos princípios fundamentais. Os computadores modernos usam o que é chamado transistor para realizar cálculos com código binário.

Aqui está um diagrama de um transistor típico:

Essencialmente, permite que a corrente flua da fonte para o dreno se houver corrente na porta. Isso forma uma chave binária. Os fabricantes podem fabricar esses transistores incrivelmente pequenos – até 5 nanômetros, ou o tamanho de duas fitas de DNA. É assim que os processadores modernos funcionam, e mesmo eles podem sofrer de problemas para distinguir entre estados ligados e desligados (embora isso se deva ao fato de seu tamanho molecular irrealista estar sujeito a a estranheza da mecânica quântica).

Por que apenas sistema binário

Então você pode estar pensando: “Por que apenas 0 e 1? Por que não adicionar outro número? Embora isso se deva em parte às tradições de criação de computadores, ao mesmo tempo, adicionar outro dígito significaria a necessidade de distinguir outro estado da corrente, não apenas “desligado” ou “ligado”.

O problema aqui é que se você deseja usar vários níveis de tensão, você precisa de uma maneira de realizar cálculos facilmente sobre eles, e o hardware atual capaz de fazer isso não é viável como substituto para cálculos binários. Por exemplo, existe um chamado computador triplo, desenvolvido na década de 1950, mas o desenvolvimento parou aí. Lógica ternária mais eficiente que o binário, mas ainda não existe um substituto eficaz para o transistor binário, ou pelo menos nenhum transistor na mesma escala minúscula que o binário.

A razão pela qual não podemos usar a lógica ternária se resume à forma como os transistores são conectados em um computador e como são usados ​​para cálculos matemáticos. O transistor recebe informações em duas entradas, realiza uma operação e retorna o resultado para uma saída.

Assim, a matemática binária é mais fácil para um computador do que qualquer outra coisa. A lógica binária é facilmente convertida em sistemas binários, com True e False correspondendo aos estados On e Off.

Uma tabela verdade binária executada em lógica binária terá quatro saídas possíveis para cada operação fundamental. Mas, como as portas triplas usam três entradas, a tabela verdade tripla teria 9 ou mais. Enquanto o sistema binário tem 16 operadores possíveis (2^2^2), o sistema ternário teria 19683 (3^3^3). O dimensionamento se torna um problema porque, embora o Trinity seja mais eficiente, também é exponencialmente mais complexo.

Quem sabe? No futuro, poderemos ver computadores ternários à medida que a lógica binária enfrenta problemas de miniaturização. Por enquanto, o mundo continuará a operar em modo binário.

Esta lição abordará o tópico “Codificando informações. Codificação binária. Unidades de medida de informação." Durante ele, os usuários poderão compreender a codificação da informação, como os computadores percebem a informação, unidades de medida e codificação binária.

Assunto:Informações ao nosso redor

Lição: Codificação de informações. Codificação binária. Unidades de informação

Esta lição abordará as seguintes questões:

1. Codificação como alteração da forma de apresentação da informação.

2. Como um computador reconhece informações?

3. Como medir a informação?

4. Unidades de medida de informação.

No mundo dos códigos

Por que as pessoas codificam informações?

1. Ocultar dos outros (criptografia de espelho de Leonardo da Vinci, criptografia militar).

2. Anote as informações resumidamente (taquigrafia, abreviatura, sinalização rodoviária).

3. Para facilitar o processamento e transmissão (código Morse, tradução em sinais elétricos - códigos de máquina).

Codificação é a representação de informações usando algum código.

Código é um sistema de símbolos para apresentação de informações.

Métodos de codificação de informações

1. Gráfico (ver Fig. 1) (usando desenhos e sinalização).

Arroz. 1. Sistema de sinalização (fonte)

2. Numérico (usando números).

Por exemplo: 11001111 11100101.

3. Simbólico (usando símbolos alfabéticos).

Por exemplo: NKMBM CHGYOU.

Decodificação é uma ação para restaurar a forma original de apresentação da informação. Para decodificar, você precisa conhecer o código e as regras de codificação.

O meio de codificação e decodificação é a tabela de correspondência de códigos. Por exemplo, a correspondência em vários sistemas numéricos é 24 - XXIV, a correspondência do alfabeto com quaisquer símbolos (Fig. 2).


Arroz. 2. Exemplo de cifra (fonte)

Exemplos de codificação de informações

Um exemplo de codificação de informações é o código Morse (ver Figura 3).

Arroz. 3. Código Morse ()

O código Morse usa apenas 2 símbolos - um ponto e um traço (som curto e longo).

Outro exemplo de codificação de informação é o alfabeto de bandeiras (ver Fig. 4).

Arroz. 4. Alfabeto de bandeira ()

Outro exemplo é o alfabeto das bandeiras (ver Fig. 5).

Arroz. 5. ABC das bandeiras ()

Um exemplo bem conhecido de codificação é o alfabeto musical (ver Fig. 6).

Arroz. 6. Alfabeto musical ()

Considere o seguinte problema:

Utilizando a tabela do alfabeto de bandeiras (ver Fig. 7), é necessário resolver o seguinte problema:

Arroz. 7

O imediato Lom passa no exame para o capitão Vrungel. Ajude-o a ler o seguinte texto (ver Figura 8):

Existem principalmente dois sinais ao nosso redor, por exemplo:

Semáforo: vermelho - verde;

Pergunta: sim - não;

Lâmpada: ligada - desligada;

É possível – não é possível;

Bom mau;

A verdade é uma mentira;

Vai e volta;

Sim não;

Todos esses são sinais que indicam a quantidade de informação em 1 bit.

1 bit - é a quantidade de informação que nos permite escolher uma opção entre duas possíveis.

Computador é uma máquina elétrica que opera em circuitos eletrônicos. Para que o computador reconheça e compreenda as informações de entrada, elas devem ser traduzidas para a linguagem do computador (máquina).

O algoritmo destinado ao intérprete deve ser escrito, ou seja, codificado, em linguagem compreensível para o computador.

Estes são sinais elétricos: a corrente está passando ou a corrente não está passando.

Linguagem binária de máquina - uma sequência de "0" e "1". Cada número binário pode ter o valor 0 ou 1.

Cada dígito de um código binário de máquina carrega uma quantidade de informação igual a 1 bit.

O número binário que representa a menor unidade de informação é chamado b isto . Um bit pode assumir o valor 0 ou 1. A presença de um sinal magnético ou eletrônico em um computador significa 1, a ausência de 0.

Uma string de 8 bits é chamada b ISTO . O computador processa essa string como um caractere separado (número, letra).

Vejamos um exemplo. A palavra ALICE consiste em 5 letras, cada uma delas representada em linguagem de computador por um byte (ver Fig. 10). Portanto, Alice pode ser medida como 5 bytes.

Arroz. 10. Código Binário (Fonte)

Além de bits e bytes, existem outras unidades de informação.

Bibliografia

1. Bosova L.L. Ciência da Computação e TIC: Livro didático para o 5º ano. - M.: BINOM. Laboratório do Conhecimento, 2012.

2. Bosova L.L. Ciência da Computação: Apostila para o 5º ano. - M.: BINOM. Laboratório do Conhecimento, 2010.

3. Bosova L.L., Bosova A.Yu. Aulas de informática do 5º ao 6º ano: Manual metodológico. - M.: BINOM. Laboratório do Conhecimento, 2010.

2. Festival “Aula Aberta” ().

Trabalho de casa

1. §1.6, 1.7 (Bosova L.L. Informática e TIC: Livro didático para a 5ª série).

2. Página 28, tarefas 1, 4; página 30, tarefas 1, 4, 5, 6 (Bosova L.L. Informática e TIC: livro didático para a 5ª série).

O significado do termo “binário” é que ele consiste em duas partes ou componentes. Assim, códigos binários são códigos que consistem em apenas dois estados simbólicos, como preto ou branco, claro ou escuro, condutor ou isolante. Um código binário em tecnologia digital é uma forma de representar dados (números, palavras e outros) como uma combinação de dois caracteres, que podem ser designados como 0 e 1. Os caracteres ou unidades de BC são chamados de bits. Uma das justificativas para o uso do BC é a simplicidade e confiabilidade de armazenar informações em qualquer meio na forma de uma combinação de apenas dois de seus estados físicos, por exemplo, na forma de mudança ou constância do fluxo luminoso quando leitura de um disco de código óptico.
Existem várias possibilidades de codificação de informações.

Código binário

Na tecnologia digital, método de representação de dados (números, palavras e outros) como uma combinação de dois caracteres, que podem ser designados como 0 e 1. Os sinais ou unidades do DC são chamados de bits.

Uma das justificativas para o uso da DC é a simplicidade e confiabilidade do armazenamento de informações em qualquer meio na forma de uma combinação de apenas dois de seus estados físicos, por exemplo, na forma de uma mudança ou constância do fluxo magnético em uma determinada célula do meio de gravação magnética.

O maior número que pode ser expresso em binário depende do número de dígitos usados, ou seja, no número de bits na combinação que expressa o número. Por exemplo, para expressar os valores numéricos de 0 a 7, basta ter um código de 3 dígitos ou 3 bits:

valor numérico Código binário
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

A partir disso podemos ver que para um número maior que 7 com um código de 3 dígitos não existem mais combinações de códigos de 0 e 1.

Passando dos números para as grandezas físicas, vamos formular a afirmação acima de uma forma mais geral: o maior número de valores m de qualquer quantidade (temperatura, tensão, corrente, etc.), que pode ser expresso em código binário, depende no número de bits n usados ​​​​como m = 2n. Se n=3, como no exemplo considerado, então obtemos 8 valores, incluindo o 0 inicial.
O código binário é um código de várias etapas. Isso significa que ao passar de uma posição (valor) para outra, vários bits podem mudar simultaneamente. Por exemplo, o número 3 em código binário = 011. O número 4 em código binário = 100. Assim, ao passar de 3 para 4, todos os 3 bits mudam seu estado para o oposto simultaneamente. A leitura de tal código de um disco de código levaria ao fato de que, devido a desvios inevitáveis ​​(tolerâncias) durante a produção de um disco de código, uma mudança nas informações de cada uma das trilhas separadamente nunca ocorreria simultaneamente. Isso, por sua vez, levaria ao fato de que, ao passar de um número para outro, informações incorretas seriam fornecidas brevemente. Assim, durante a transição acima do número 3 para o número 4, é muito provável uma saída de curto prazo do número 7, quando, por exemplo, o bit mais significativo durante a transição mudou seu valor um pouco antes do resto . Para evitar isso, é utilizado um chamado código de uma etapa, por exemplo, o chamado Código Gray.

Código cinza

O código Gray é o chamado código de uma etapa, ou seja, Ao passar de um número para outro, apenas um de todos os bits de informação sempre muda. Um erro ao ler informações de um disco de código mecânico ao passar de um número para outro só levará ao fato de que a transição de uma posição para outra será apenas ligeiramente deslocada no tempo, mas a emissão de um valor de posição angular completamente incorreto quando passar de uma posição para outra é completamente eliminado.
Outra vantagem do Gray Code é a sua capacidade de espelhar informações. Assim, ao inverter o bit mais significativo, você pode simplesmente alterar a direção da contagem e, assim, corresponder à direção real (física) de rotação do eixo. A alteração da direção de contagem desta forma pode ser facilmente alterada controlando a chamada entrada “Complemento”. O valor de saída pode, portanto, aumentar ou diminuir para a mesma direção física de rotação do eixo.
Como a informação expressa no Código Gray é de natureza puramente codificada e não contém informações numéricas reais, ela deve primeiro ser convertida em um código binário padrão antes de ser processada posteriormente. Isso é feito por meio de um conversor de código (decodificador Gray-Binar), que, felizmente, é facilmente implementado por meio de um circuito de elementos lógicos exclusivos ou (XOR), tanto em software quanto em hardware.

Números decimais correspondentes no intervalo de 0 a 15 para códigos binários e Gray

Codificação binária Codificação cinza
Código decimal
Valor binário Dezesseis significado Código decimal Valor binário Dezesseis significado
0 0000 0h 0 0000 0h
1 0001 1h 1 0001 1h
2 0010 2h 3 0011 3h
3 0011 3h 2 0010 2h
4 0100 4h 6 0110 6h
5 0101 5h 7 0111 7h
6 0110 6h 5 0101 5h
7 0111 7h 4 0100 4h
8 1000 8h 12 1100 CH
9 1001 9h 13 1101 Dh
10 1010 Ah 15 1111 Fh
11 1011 Bh 14 1110 Eh
12 1100 CH 10 1010 Ah
13 1101 Dh 11 1011 Bh
14 1110 Eh 9 1001 9h
15 1111 Fh 8 1000 8h

A conversão do código Gray para o código binário usual pode ser feita usando um circuito simples com inversores e portas exclusivas conforme mostrado abaixo:

Código Gray-Excesso

O código Gray usual de uma etapa é adequado para resoluções que podem ser representadas como um número elevado à potência de 2. Nos casos em que é necessário implementar outras permissões, a seção intermediária é cortada do código Gray normal e usada. Desta forma o código permanece “one-step”. No entanto, o intervalo numérico não começa em zero, mas é deslocado por um determinado valor. Ao processar informações, metade da diferença entre a resolução original e a reduzida é subtraída do sinal gerado. Resoluções como 360? para expressar um ângulo são frequentemente implementados por este método. Portanto, um código Gray de 9 bits igual a 512 passos, cortado em ambos os lados por 76 passos, será igual a 360°.

A decodificação de código binário é usada para traduzir da linguagem de máquina para a linguagem regular. As ferramentas online funcionam rapidamente, embora não seja difícil fazê-lo manualmente.

O código binário ou binário é usado para transmitir informações digitalmente. Um conjunto de apenas dois caracteres, como 1 e 0, permite criptografar qualquer informação, seja texto, números ou imagem.

Como criptografar com código binário

Para converter manualmente quaisquer símbolos em código binário, são utilizadas tabelas nas quais cada símbolo recebe um código binário na forma de zeros e uns. O sistema de codificação mais comum é o ASCII, que usa notação de código de 8 bits.

A tabela básica mostra códigos binários para o alfabeto latino, números e alguns símbolos.

Uma interpretação binária do alfabeto cirílico e caracteres adicionais foram adicionados à tabela estendida.

Para converter de código binário em texto ou números, basta selecionar os códigos desejados nas tabelas. Mas, claro, fazer esse tipo de trabalho manualmente leva muito tempo. E os erros, além disso, são inevitáveis. O computador lida com a descriptografia muito mais rápido. E nem pensamos, ao digitar um texto na tela, que naquele momento o texto está sendo convertido em código binário.

Convertendo um número binário em decimal

Para converter manualmente um número de um sistema numérico binário para um sistema numérico decimal, você pode usar um algoritmo bastante simples:

  1. Abaixo do número binário, começando pelo dígito mais à direita, escreva o número 2 em potências crescentes.
  2. As potências de 2 são multiplicadas pelo dígito correspondente do número binário (1 ou 0).
  3. Adicione os valores resultantes.

Esta é a aparência deste algoritmo no papel:

Serviços online para descriptografia binária

Se você ainda precisar ver o código binário descriptografado ou, inversamente, converter o texto em formato binário, a maneira mais fácil é usar serviços online projetados para esses fins.

Duas janelas, familiares às traduções online, permitem ver quase simultaneamente ambas as versões do texto em formato regular e binário. E a descriptografia é realizada em ambas as direções. Inserir texto é uma simples questão de copiar e colar.

Profundidade de bits do código binário, Conversão de informações da forma contínua para discreta, Universalidade da codificação binária, Códigos uniformes e não uniformes, Ciência da Computação 7ª série Bosova, Ciência da Computação 7ª série

1.5.1. Convertendo informações de formato contínuo para discreto
Para resolver seus problemas, muitas vezes uma pessoa precisa transformar as informações existentes de uma forma de representação para outra. Por exemplo, ao ler em voz alta, a informação é convertida da forma discreta (texto) para contínua (som). Durante um ditado numa aula de língua russa, pelo contrário, a informação é transformada de uma forma contínua (a voz do professor) para uma forma discreta (notas dos alunos).
As informações apresentadas de forma discreta são muito mais fáceis de transmitir, armazenar ou processar automaticamente. Portanto, na tecnologia da computação, muita atenção é dada aos métodos para converter informações da forma contínua para a discreta.
A discretização da informação é o processo de conversão da informação de uma forma contínua de representação para uma forma discreta.
Vejamos a essência do processo de amostragem de informações usando um exemplo.
As estações meteorológicas possuem gravadores para registro contínuo da pressão atmosférica. O resultado de seu trabalho são barogramas – curvas que mostram como a pressão mudou durante longos períodos de tempo. Uma dessas curvas, desenhada pelo aparelho durante sete horas de observação, é mostrada na Fig. 1.9.

Com base nas informações recebidas, é possível construir uma tabela contendo as leituras do instrumento no início das medições e ao final de cada hora de observação (Fig. 1.10).

A tabela resultante não dá uma imagem completamente completa de como a pressão mudou durante o período de observação: por exemplo, o valor de pressão mais alto que ocorreu durante a quarta hora de observação não é indicado. Mas se você tabular os valores de pressão observados a cada meia hora ou 15 minutos, a nova tabela dará uma imagem mais completa de como a pressão mudou.
Assim, convertemos informações apresentadas na forma contínua (barograma, curva) em forma discreta (tabela) com alguma perda de precisão.
No futuro, você se familiarizará com maneiras de representar discretamente informações de áudio e gráficas.

Cadeias de três símbolos binários são obtidas complementando os códigos binários de dois dígitos à direita com o símbolo 0 ou 1. Como resultado, as combinações de código de três símbolos binários são 8 - duas vezes mais que as de dois símbolos binários:
Conseqüentemente, um binário de quatro bits permite obter 16 combinações de código, um de cinco bits - 32, um de seis bits - 64, etc. chamada de profundidade de bits do código binário.
Observe que:
4 = 2 * 2,
8 = 2 * 2 * 2,
16 = 2 * 2 * 2 * 2,
32 = 2*2*2*2*2 etc.
Aqui, o número de combinações de código é o produto de um certo número de fatores idênticos iguais à profundidade de bits do código binário.
Se o número de combinações de código for indicado pela letra N e a profundidade de bits do código binário pela letra i, então o padrão identificado na forma geral será escrito da seguinte forma:
N=2*2*…*2.
eu fatores
Em matemática, esses produtos são escritos como:
N = 2 eu.
A entrada 2 i é lida da seguinte forma: “2 elevado à i-ésima potência”.

Tarefa. O líder da tribo Multi instruiu seu ministro a desenvolver um binário e traduzir nele todas as informações importantes. Qual tamanho binário será necessário se o alfabeto usado pela tribo Multi contiver 16 caracteres? Anote todas as combinações de código.
Solução. Como o alfabeto multitribo consiste em 16 caracteres, eles precisam de 16 combinações de código. Neste caso, o comprimento (profundidade de bits) do código binário é determinado a partir da proporção: 16 = 2 i. Portanto eu = 4.
Para anotar todas as combinações de código de quatro 0s e 1s, usamos o diagrama da Fig. 1.13: 0000, 0001, 0010, 0011, 0100, 0101, 0110.0111.1000.1001.1010.1011.1100.1101.1110.1111.

1.5.3. A versatilidade da codificação binária
No início desta seção, você aprendeu que, representado de forma contínua, pode ser expresso por meio de símbolos em alguma linguagem natural ou formal. Por sua vez, caracteres de um alfabeto arbitrário podem ser convertidos em binários. Assim, usando código binário, quaisquer linguagens naturais e formais, bem como imagens e sons, podem ser representadas (Fig. 1.14). Isso significa a universalidade da codificação binária.
Os códigos binários são amplamente utilizados na tecnologia de computadores, exigindo apenas dois estados de um circuito eletrônico - “ligado” (corresponde ao número 1) e “desligado” (corresponde ao número 0).
A simplicidade da implementação técnica é a principal vantagem da codificação binária. A desvantagem da codificação binária é o grande comprimento do código resultante.

1.5.4. Códigos uniformes e não uniformes
Existem códigos uniformes e não uniformes. Os códigos uniformes em combinações de códigos contêm o mesmo número de símbolos, os ímpares contêm um número diferente.
Acima, vimos códigos binários uniformes.
Um exemplo de código não uniforme é o código Morse, no qual uma sequência de sinais curtos e longos é definida para cada letra e número. Assim, a letra E corresponde a um sinal curto (“ponto”), e a letra Ш corresponde a quatro sinais longos (quatro “traços”). Desigual permite aumentar a velocidade de transmissão de mensagens devido ao fato de que os caracteres que ocorrem com mais frequência nas informações transmitidas possuem as combinações de código mais curtas.

A informação que este símbolo fornece é igual à entropia do sistema e é máxima no caso em que ambos os estados são igualmente prováveis; neste caso, o símbolo elementar transmite a informação 1 (duas unidades). Portanto, a base da codificação ideal será a exigência de que os caracteres elementares no texto codificado ocorram, em média, com a mesma frequência.

Apresentamos aqui um método para construir um código que satisfaça a condição declarada; Este método é conhecido como código Shannon-Fano. Sua ideia é que os símbolos codificados (letras ou combinações de letras) sejam divididos em dois grupos aproximadamente igualmente prováveis: para o primeiro grupo de símbolos, 0 é colocado no primeiro lugar da combinação (o primeiro caractere do número binário que representa o símbolo); para o segundo grupo - 1. Em seguida, cada grupo é novamente dividido em dois subgrupos aproximadamente igualmente prováveis; para símbolos do primeiro subgrupo, zero é colocado em segundo lugar; para o segundo subgrupo - um, etc.

Vamos demonstrar o princípio de construção do código Shannon-Fano usando o material do alfabeto russo (Tabela 18.8.1). Vamos contar as seis primeiras letras (de “-” a “t”); somando suas probabilidades (frequências), obtemos 0,498; todas as outras letras (de “n” a “sf”) terão aproximadamente a mesma probabilidade de 0,502. As primeiras seis letras (de “-” a “t”) terão um binário 0 em primeiro lugar. As letras restantes (de “n” a “f”) terão um em primeiro lugar. A seguir, dividimos novamente o primeiro grupo em dois subgrupos aproximadamente igualmente prováveis: de “-” a “o” e de “e” a “t”; para todas as letras do primeiro subgrupo em segundo lugar colocaremos zero, e do segundo subgrupo - um. Continuaremos o processo até que reste exatamente uma letra em cada divisão, que será codificada com um determinado número binário. O mecanismo para construir o código é mostrado na Tabela 18.8.2, e o código em si é fornecido na Tabela 18.8.3.

Tabela 18.8.2.

Sinais binários

Tabela 18.8.3

Usando a Tabela 18.8.3, você pode codificar e decodificar qualquer mensagem.

Como exemplo, vamos escrever a frase “teoria da informação” em código binário.

01110100001101000110110110000

0110100011111111100110100

1100001011111110101100110

Observe que não há necessidade de separar as letras umas das outras com um sinal especial, pois a decodificação é realizada de forma inequívoca mesmo sem isso. Você pode verificar isso decodificando a seguinte frase usando a Tabela 18.8.2:

10011100110011001001111010000

1011100111001001101010000110101

010110000110110110

(“método de codificação”).

No entanto, deve-se notar que qualquer erro de codificação (confusão aleatória de caracteres 0 e 1) com tal código é desastroso, uma vez que a decodificação de todo o texto após o erro torna-se impossível. Portanto, este princípio de codificação só pode ser recomendado nos casos em que os erros na codificação e transmissão de uma mensagem sejam praticamente eliminados.

Surge uma pergunta natural: o código que compilamos, na ausência de erros, é realmente ideal? Para responder a esta questão, vamos encontrar a informação média por símbolo elementar (0 ou 1) e compará-la com a informação máxima possível, que é igual a uma unidade binária. Para fazer isso, primeiro encontramos a informação média contida em uma letra do texto transmitido, ou seja, entropia por letra:

,

onde é a probabilidade de a letra assumir um determinado estado (“-”, o, e, a,..., f).

Da mesa 18.8.1 temos

(duas unidades por letra de texto).

Usando a tabela 18.8.2, determinamos o número médio de símbolos elementares por letra

Dividindo a entropia por, obtemos informações por símbolo elementar

(duas unidades).

Assim, a informação por caractere está muito próxima do seu limite superior de 1, e o código que escolhemos está muito próximo do ideal. Permanecendo dentro dos limites da tarefa de codificação de letras, não podemos conseguir nada melhor.

Observe que no caso de codificação simplesmente de números binários de letras, teríamos uma imagem de cada letra com cinco caracteres binários e a informação de um caractere seria

(duas unidades),

isto é, visivelmente menos do que com a codificação de letras ideal.

No entanto, deve-se notar que a codificação “por letra” não é nada econômica. O fato é que sempre existe uma dependência entre letras adjacentes de qualquer texto significativo. Por exemplo, depois de uma vogal na língua russa não pode haver “ъ” ou “ь”; “I” ou “yu” não podem aparecer depois dos assobios; depois de várias consoantes seguidas, a probabilidade de uma vogal aumenta, etc.

Sabemos que quando os sistemas dependentes são combinados, a entropia total é menor que a soma das entropias dos sistemas individuais; portanto, a informação transmitida por um trecho de texto conectado é sempre menor que a informação por caractere vezes o número de caracteres. Levando em conta esta circunstância, um código mais econômico pode ser construído se você codificar não cada letra individualmente, mas “blocos” inteiros de letras. Por exemplo, em um texto russo, faz sentido codificar inteiramente algumas combinações de letras que ocorrem com frequência, como “tsya”, “ayet”, “nie”, etc. na mesa. 18.8.1, e a codificação binária é realizada de acordo com o mesmo princípio.

Em alguns casos, é razoável codificar nem mesmo blocos de letras, mas trechos inteiros de texto significativos. Por exemplo, para aliviar o telégrafo durante as férias, é aconselhável codificar textos padrão inteiros com números convencionais, como:

“Parabéns pelo Ano Novo, desejo muita saúde e sucesso no seu trabalho.”

Sem nos determos especificamente nos métodos de codificação em bloco, nos limitaremos a formular o teorema de Shannon aqui relacionado.

Seja uma fonte de informação e um receptor conectado por um canal de comunicação (Fig. 18.8.1).

A produtividade da fonte de informação é conhecida, ou seja, o número médio de unidades binárias de informação provenientes da fonte por unidade de tempo (numericamente é igual à entropia média da mensagem produzida pelas fontes por unidade de tempo). Seja, além disso, conhecida a capacidade do canal, ou seja, a quantidade máxima de informação (por exemplo, caracteres binários 0 ou 1) que o canal é capaz de transmitir na mesma unidade de tempo. Surge a pergunta: qual deve ser a capacidade do canal para que ele “dê conta” de sua tarefa, ou seja, para que a informação chegue da fonte ao receptor sem demora?

A resposta a esta questão é dada pelo primeiro teorema de Shannon. Vamos formulá-lo aqui sem provas.

1º teorema de Shannon

Se a capacidade do canal de comunicação for maior que a entropia da fonte de informação por unidade de tempo

então é sempre possível codificar uma mensagem suficientemente longa para que seja transmitida sem demora por um canal de comunicação. Se, pelo contrário,

então a transferência de informações sem demora é impossível.