Codificação Daniel Vieira
Codificação Conceitos. Sabe-se que na memória principal são armazenados instruções e dados referentes ao programa executado. Sabe-se também que isso só é possível pela capacidade que o equipamento tem de distinguir entre dois estados, 0 – 1. Por meio da variação desta combinação podemos chegar a várias combinações que compõem a informação .
Codificação Mas como o computador funciona? Um conjunto de bits – sempre com a mesma quantidade de bits – precisa ser tomado em cada circuito no computador; esse “pedaço” de tamanho fixo contém a informação. Se este conjunto for de 6 bits, esta será a unidade de processamento deste equipamento. Este conjunto de bits permitiria ao computador “reconhecer”:
Codificação 10 algorismos (de 0 – 9). = 10 26 letras (incluindo K, W e Y) = 26 28 símbolos especiais (*,$, @,...) = 28 64 Isso por que existiriam 2^6, permitindo 64 configurações diferentes.
Codificação Com 4 grupos sucessivos de 6 bits em conjunto, o número 1946 estaria representado da seguinte forma: 1 9 4 6 1 Seguindo o mesmo critério, o número 9999 fica da seguinte forma. 1
Codificação Caso cada casa da memoria admitisse 24 bits e fosse utilizado um código binário para 9999 igual ao exemplo anterior teríamos esta situação. 1 1 9 1 1 9 1 1 9 1 1 9
Codificação Nota-se uma grande perda quando se adota o código visto em relação ao binário puro que no caso de 9999 é. 1 1 1 1 1 1 1 1 9 9 9 9
Codificação Lembrem-se, a contagem deve sempre iniciar da direita para esquerda, cada bit nesta escala é resultado da equação 2^n iniciada em zero, que é igual a 1 por tanto. 2^0 = 1 2^1 = 2 2^2 = 4 ... 8 4 2 1 1 2^24 = 16.777.215
Codificação Há uma série de razões para o computador utilizar um código definido. Lembre-se o computador precisa representar muito mais coisas do que apenas números.
Codificação Poderíamos organizar bytes em grupos de 4 bits, o que seria totalmente insuficiente pois somente 16 caracteres seriam possíveis, onde 10 configurações seriam números (0-9) e 6 seriam letras por exemplo (A-E).
Codificação BCD Para poder representar os 64 bits foi criado o codigo BCD (Binary Coded Decimal). E assim denominou-se que os 4 primeiros bits seriam parte numérica e os 2 últimos Zona, que será sempre 0 para números.
Codificação BCD ZONA PARTE NUMÉRICA
Codificação Tabela BCD (Binary-Coded-Decimal).
Codificação Como medida de melhor aproveitamento da memória, os computadores da 3ª geração passaram a utilizar bytes de 8 bits, permitindo que sob notação compactada cada algarismo ocupe apenas meio byte, em outras palavras, um byte dois algarismos. Isso aumenta sensivelmente o aproveitamento de espaço e a melhoria da organização interna.
Codificação ZONA PARTE NUMÉRICA
EBCDIC - ASCII Codificação Com isso vieram novos códigos que aproveitam ainda mais as configurações possíveis, agora num total de 2^8, ou seja 256 configurações diferentes. Exemplo deles o EBCDIC (Expanded Binary- Coded Decimal Interchange Code) e o ASCII (American Standard Code for Information Interchange).
Codificação
Codificação O EBCDIC (Expanded Binary- Coded Decimal Interchange Code) É usado em grandes Mainframes enquanto o ASCII (American Standard Code for Information Interchange), em sua versão de 7 posições são usados em microcomputadores. Fato que faz com que algumas redes de comunicação que interligam equipamentos de vários portes utilizem dispositivos de tradução.
Codificação Codificação Estendida O conjunto ASCII de 7 posições abriga representações para 96 caracteres voltados a leitura/impressão e mais 32 caracteres de controle sem representação gráfica. Por ser um padrão americano, não atende a todos os idiomas e aplicações gráficas. Por isso os computadores modernos utilizam caracteres estendidos, a exemplo dos IBMPCs onde em seu conjunto estendido (extanted charter set), residente em ROM, conta com 126 representações a mais das existentes em ASCII.
Sistema Hexadecimal Codificação Pode-se aumentar a gama de números a representar em posições de tamanho fixo usando um sistema de base superior a 10. é justamente isso que os computadores modernos fazem, eles operam em um sistema de base 16 (hexadecimal).
Codificação Sistema Hexadecimal O sistema que usamos no cotidiano é o decimal, onde cada posição em número vale 10 vezes o algarismo que está a direita. Exemplo: 496. O algarismo 6 vale 6x1; O algarismo 9 vale 9x10; O algarismo 4 vale 4x10x10;
Codificação Uma característica de qualquer sistema de numeração é o número de algarismos diferentes que utiliza. O sistema decimal, por ser de base 10, tem dez algarismos diferentes: 0-1-2-3-4-5-6-7-8 e 9. O sistema binário tem dois algarismos diferentes: 0 e 1. Necessitamos de tantos símbolos diferentes quantos forem os algarismos de base do sistema. No sistema hexadecimal (16 símbolos), por conveniência, usamos os mesmos dez símbolos utilizados pelo sistema decimal (0 a 9) e as letras de A até F. Formando a seguinte sequencia. 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F.
Codificação No sistema hexadecimal (16 símbolos), por conveniência, usamos os mesmos dez símbolos utilizados pelo sistema decimal (0 a 9) e as letras de A até F. Formando a seguinte sequencia. 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F. O computador usa o sistema hexadecimal para armazenar informações, mas todos os cálculos são realizados no sistema binário.
Codificação
Codificação No sistema hexadecimal, a primeira posição (à direita) de um número indica o número de uns (ou 16^0). A posição seguinte indica o número 16. A terceira posição indica o número de 16 x 16 = 256 ... Assim o equivalente hexadecimal do número 235 é 565.
Codificação No sistema hexadecimal, a primeira posição (à direita) de um número indica o número de uns (ou 16^0). A posição seguinte indica o número 16. A terceira posição indica o número de 16 x 16 = 256 ... Assim o equivalente hexadecimal do número 235 é 565. Vejamos:
Codificação 5 x 16^0 = 5 3 x 16 = 48 2 x 256 = 512 565 16x16
Codificação O equivalente de A5 é (5 x 1 + 10 x 16) = 165. O equivalente a BA é (10 x 1 + 11 x 16) = 186. A utilização do sistema hexadecimal permite que a notação seja compactada, visto que (FF)16 = (255)10, ao utilizar apenas 2 dígitos no sistema decimal conseguiríamos representar apenas (99)10. E teríamos que adicionar mais um byte para representar (255) 10. Sistema sala 7 parou aqui
Codificação Supondo que definimos uma tabela de base 5 e ela tenha ficado da seguinte forma. 20 = barra de espaço (0)n = byte vazio 0 = 30 1 = 31 2 = 32 3 = 33 4 = 34 ... A = 41 B = 42 C = 43 D = 44 E = 45 ... M = 4D N = 4E O = 4F P = 50 Q = 51 ...
Este procedimento é denominado DUMP Codificação. 0 = 30 1 = 31 2 = 32 3 = 33 4 = 34 ... A = 41 B = 42 C = 43 D = 44 E = 45 M = 4D N = 4E O = 4F P = 50 Q = 51 20 = barra de espaço (0)n = byte vazio A conversão desta tabela seria interpretada da seguinte forma pelo computador: End 01C0 01D0 Conteúdo 30 30 32 37 35 47 52 41 4D 50 45 41 44 4F 52 20 20 20 20 20 20 30 30 30 31 30 30 30 20 20 0D 0A Este procedimento é denominado DUMP 2 7 5 G R A M P E A D O R TRADUÇÃO 1
Sistema Octal Codificação Para maior aproveitamento é possível adotar o sistema octal com subdivisão do string de 3 em 3 bits.
Codificação ZONA PARTE NUMÉRICA
Codificação ZONA PARTE NUMÉRICA
Codificação Quando o computador trata constantes ou variáveis, reserva para elas posições de memória adequadas ao respectivo acondicionamento, para que possam estar disponíveis nas operações designadas e atendendo ao software dependendo de sua tipificação e formatação. Numerais
Codificação 1 9 4 6 Tratando Numerais Exemplo: Se o número 1946 estiver configurado para variável numérica, sua representação jamais será: 1 9 4 6 1
Codificação Tratando Numerais Exemplo: Sendo numérica inteiro, utilizará apenas 2 bytes e ficará da seguinte forma: 1 1946 Diferente do tipo string onde cada digito representa um algarismo e neste caso ficaria 1 9 4 6 1
Codificação Números Naturais Repare que se uma linguagem faz com que o computador reserve para cada inteiro a acomodação de 2 bytes, e só fosse representar os números naturais, poderia fazê-lo do 0 (zero) ao 65535.
Codificação Números Naturais 00000000 00000000 (zero) 11111111 11111111 (65535) 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32786
Codificação Números Naturais Se fosse representar em apenas 1byte? 11111111 = 255 ou 2 -1 neste caso 2 -1 n 8
Codificação Historia O intel 8088 possuía endereçamento de 20 bits; logo era capaz de endereçar memórias até 1 megabyte. O AT-286 possuía endereçamento de 24 bits; portanto era capaz de endereçar 16MB. As maquinas mais recentes de 32 bits ou mais, endereçam memoria de alguns gigas.
Codificação Mas, e os números negativos? Já foi utilizado mais um bit onde 0 (zero) representava número positivo e 1 negativo a esta solução deu-se o nome de magnitude/sinal ou sinal/magnitude. A solução utilizada atualmente denominada complemento a 2, não requer a inclusão de novo bit.
Complemento a 2 Codificação Nele, representa-se (em vez de 2n “números naturais”), n números negativos , o zero (0) e n-1 números positivos. Para facilitar o entendimento, iniciaremos a analise mostrando números naturais de 4 bits.
Codificação Complemento a dois Com 4 bits poderíamos ter 15 valores 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = 10 1011 = 11 1100 = 12 1101 = 13 1110 = 14 1111 = 15 Complemento a dois Com 4 bits poderíamos ter 15 valores Com o complemento a 2,podemos representar: +7,+6,+5,+4,+3,+2,+1, -8,-7,-6,-5,-4,-3,-2,-1,
Codificação Complemento a dois Mas como proceder para fazê-lo? Considerar que todas as configurações iniciadas por 0 são positivas (exceto zero, obviamente). Trocar todos os zeros por uns e todos os uns por zero (Complemento a 1). Adicionar 1 ao resultado (Complemento a 2).
Codificação Complemento a dois 1 = 0001 Complemento a 1 = 1110 Inverte os dígitos Complemento a 2 = 1111 = -1 Adiciona 1 ao Resultado
Codificação Complemento a dois 2 = 0010 Complemento a 1 = 1101 Inverte os dígitos Complemento a 2 = 1110 = -2 Adiciona 1 ao Resultado
Codificação Complemento a dois 3 = 0011 Complemento a 1 = 1100 Inverte os dígitos Complemento a 2 = 1101 = -3 Adiciona 1 ao Resultado
Codificação Complemento a dois 4 = 0100 Complemento a 1 = 1011 Inverte os dígitos Complemento a 2 = 1100 = -4 Adiciona 1 ao Resultado
Codificação Complemento a dois 5 = 0101 Complemento a 1 = 1010 Inverte os dígitos Complemento a 2 = 1011 = -5 Adiciona 1 ao Resultado
Codificação Obrigado.