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). = 1026 letras (incluindo K, W e Y) = 2628 símbolos especiais (*,$, @,...) = 28
64Isso 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:
0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
Seguindo o mesmo critério, o número 9999 fica da seguinte forma.
1 9 4 6
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.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
9
9
9
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 é.
9 9 9 90 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1
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.
16.777.215
2^0 = 1
12^1 =
22^2 = 48...
2^24 =1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24
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
ZONA
PARTE NUMÉRICA
BCD
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
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).
EBCDIC - ASCII
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.
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).
Sistema 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çãoUma 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çãoNo 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çãoNo 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 =3 x 16 =2 x 256 =
548512565
16x16
CodificaçãoO 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.
Codificação• Supondo que definimos uma tabela de base 5
e ela tenha ficado da seguinte forma.
0 = 301 = 312 = 323 = 334 = 34...
A = 41B = 42C = 43D = 44E = 45...
M = 4DN = 4EO = 4FP = 50Q = 51...
20 = barra de espaço (0)n = byte vazio
Codificação.• A conversão desta tabela seria interpretada da
seguinte forma pelo computador:End01C001D0
Conteúdo30 30 32 37 35 47 52 41 4D 50 45 41 44 4F 52 2020 20 20 20 20 30 30 30 31 30 30 30 20 20 0D 0A
TRADUÇÃO 0 0 2 7 5 G R A M P E A D O R0 0 0 1 0 0 0
0 = 301 = 312 = 323 = 334 = 34...
A = 41B = 42C = 43D = 44E = 45...
M = 4DN = 4EO = 4FP = 50Q = 51...
20 = barra de espaço (0)n = byte vazio
Este procedimento é denominado DUMP
Codificação
Para maior aproveitamento é possível adotar o sistema octal com subdivisão do string de 3 em 3 bits.
Sistema Octal
CodificaçãoZONA
PARTE NUMÉRICA
CodificaçãoZONA
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• Tratando Numerais
Exemplo:Se o número 1946 estiver configurado para variável numérica, sua representação jamais será:
1 9 4 61 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 10 1 0 0
CodificaçãoTratando NumeraisExemplo:Sendo numérica inteiro, utilizará apenas 2 bytes e ficará da seguinte forma:
0 0 0 0 0 1 0 1 1 0 0 0110 1
1946
1 9 4 60 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 10 1 0 0
Diferente do tipo string onde cada digito representa um algarismo e neste caso ficaria
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?
ou
2 -1 neste caso 2 -1 n 8
11111111 = 255
CodificaçãoHistoria
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çãoMas, 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.
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.
Complemento a 2
Codificação• Complemento a dois
0000 = 00001 = 10010 = 20011 = 30100 = 40101 = 50110 = 60111 = 71000 = 81001 = 91010 = 101011 = 111100 = 121101 = 131110 = 141111 = 15
Com 4 bits poderíamos ter 15 valores
Com o complemento a 2,podemos representar:
+7,+6,+5,+4,+3,+2,+1, 0 -8,-7,-6,-5,-4,-3,-2,-1,
Codificação
Mas como proceder para fazê-lo?1. Considerar que todas as configurações
iniciadas por 0 são positivas (exceto zero, obviamente).
2. Trocar todos os zeros por uns e todos os uns por zero (Complemento a 1).
3. Adicionar 1 ao resultado (Complemento a 2).
• Complemento a dois
Codificação• Complemento a dois
1 = 0001Complemento a 1 = 1110 Complemento a 2 = 1111 = -1
Inverte os dígitos
Adiciona 1 aoResultado
Codificação• Complemento a dois
2 = 0010Complemento a 1 = 1101 Complemento a 2 = 1110 = -2
Inverte os dígitos
Adiciona 1 aoResultado
Codificação• Complemento a dois
3 = 0011Complemento a 1 = 1100 Complemento a 2 = 1101 = -3
Inverte os dígitos
Adiciona 1 aoResultado
Codificação• Complemento a dois
4 = 0100Complemento a 1 = 1011 Complemento a 2 = 1100 = -4
Inverte os dígitos
Adiciona 1 aoResultado
Codificação• Complemento a dois
5 = 0101Complemento a 1 = 1010 Complemento a 2 = 1011 = -5
Inverte os dígitos
Adiciona 1 aoResultado
Codificação
Obrigado.
Top Related