Infra-Estrutura de Hardware Sistemas de Numeração Conversão entre bases Bit e byte ECC Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conversão de bases Aritmética binária e hexadecimal Códigos de representação Conversão de números fracionários Multiplicação e divisão
Os algarismos componentes de um número assumem valores diferentes, dependendo de sua posição relativa no número O valor total do número é a soma dos valores relativos de cada algarismo Desse modo, é a posição do algarismo ou dígito que determina seu valor Exemplo: 4 1 5 5 1 0 4 0 0 415 = 5 10 0 + 1 10 1 + 4 10 2
Generalização A quantidade de algarismos disponíveis em um dado sistema de numeração é chamada de base; a base serve para contarmos grandezas maiores, indicando a noção de grupamento O sistema de dez algarismos tem base 10; um outro sistema que possua apenas dois algarismos diferentes (0 e 1) é de base 2, e assim por diante Como resultado (de saída), obtêm-se informações sobre a nova posição do estoque. Generalização Num sistema qualquer de numeração posicional, um número N é expresso da seguinte forma: N = (d n-1 d n-2 d n-3... d 1 d 0 ) b onde: d indica cada algarismo do número n-1, n-2, 1, 0, indicam a posição de cada algarismo b indica a base de numeração n indica o número de dígitos inteiros O valor do número pode ser obtido do seguinte somatório: N = d n-1 b n-1 + d n-2 b n-2 +... + d 1 b 1 + d 0 b 0
Bases de numeração Base 2: {0, 1} (binária) Base 8: {0, 1, 2, 3, 4, 5, 6, 7} (octal) Base 16: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} (hexadecimal)... Assim, na base 2, por exemplo, teríamos a seguinte equivalência com a base 10: 0 10 = 0 2 4 10 = 100 2 8 10 = 1000 2 12 10 = 1100 2 1 10 = 1 2 5 10 = 101 2 9 10 = 1001 2 13 10 = 1101 2 2 10 = 10 2 6 10 = 110 2 10 10 = 1010 2 14 10 = 1110 2 3 10 = 11 2 7 10 = 111 2 11 10 = 1011 2 15 10 = 1111 2... Entre as bases 2 e 8 Dividir o número binário, da direita para esquerda, em grupos de 3 dígitos binários (bits) Exemplo: 3038 10 = 101111011110 2 = (? ) 8 ( 5 7 3 6) 8
Entre as bases 8 e 16 converte base 8 base 2 base 16 converte base 16 base 2 base 8 Exemplo: BAE 16 = (? ) 8 converte converte BAE 16 = 101110101110 2 = 5656 8 Entre números de uma base B para a base 10 N = d n-1 b n-1 + d n-2 b n-2 +... + d 1 b 1 + d 0 b 0 Exemplo: (457) 9 = (?) 10 457 9 = 4 9 2 + 5 9 1 + 7 9 0 = 4 81 + 5 9 + 7 1 = 324 + 45 + 7 = (376) 10 Exemplo: (101101) 2 = (? ) 10 (101101) 2 = 1 2 5 + 1 2 3 + 1 2 2 + 1 2 0 = (45) 10
Números decimais para a base 10 Algoritmo: 1. Dividir o número na base 10 (dividendo) pela base B (divisor); 2. Extrair o resto como algarismo e colocá-lo à esquerda do anterior; 3. Se o quociente for maior que o divisor, repetir o passo 1; 4. Usar o quociente (que agora é menor que o divisor) como último algarismo à esquerda. Exemplo: (3964) 10 = (? ) 8 3 9 6 4 8 7 6 4 9 5 (3964) 10 = (7574) 8 4 4 1 5 4 7 8 6 1 Sentido de leitura 8 7 5 Aritmética binária e hexadecimal Soma binária A operação de soma de dois números em base 2 é efetuada de modo semelhante à soma decimal, levando-se em conta, apenas, que só há dois algarismos disponíveis (0 e 1) Assim, 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, com "vai 1" Exemplo: Parcela 1 1 0 1 0 1 Parcela 2 1 1 1 0 0 Resultado 1 1 0 0 0 1 1 1 1
Aritmética binária e hexadecimal Subtração binária Empréstimo de 2 Exemplo: Parcela 1 1 0 1 1 0 1 Parcela 2 1 0 0 1 1 1 Resultado 0 0 0 1 1 0 2 2 Aritmética binária e hexadecimal Aritmética octal Igual à aritmética binária Exemplo: Soma Subtração 1 1 1 8 Parcela 1 3 6 5 7 Parcela 1 7 3 1 2 Parcela 2 1 7 4 1 Parcela 2 3 4 6 5 Resultado 5 6 2 0 Resultado 3 6 2 5 8 8
Aritmética binária e hexadecimal Aritmética hexadecimal Exemplo: Igual às aritméticas anteriores Soma Subtração 1 1 1 G G Parcela 1 3 A 9 4 3 B Parcela 1 4 C 7 B E 8 Parcela 2 2 3 B 7 D 5 Parcela 2 1 E 9 2 7 A Resultado 5 E 4 C 1 0 Resultado 2 D E 9 6 E G Multiplicação Binária Multiplicação (1 a Opção) Pode fazer-se por adições sucessivas para calcular A*B basta somar A a si própria B vezes Exemplo: 101 b *100 b =? Lembrado que 100 b = 4 d, então 101 * 100 =
Multiplicação Binária Multiplicação (2 a Opção) Semelhante à multiplicação decimal exceto pelo fato da soma final dos produtos se fazer em binário As seguintes igualdades devem ser respeitadas: 0*0=0; 0*1=0; 1*0=0; 1*1=1 Exemplos: multiplicar os números 1011 e 1101 Divisão Binária Divisão(1 a Opção) Pode ser feita por subtrações sucessivas até obtermos uma diferença menor que o divisor (resto) Exemplo:
Divisão Binária Divisão (2a Opção) Pode ser feita de maneira idêntica à divisão decimal exceto pelo fato das multiplicações e subtrações internas ao processo serem feitas em binário Divisão Binária Divisão (2a Opção)
Bit Byte ECC Tipos de dados tratados pelo computador Dados e as instruções armazenados em memória são codificados sob a forma de sinais elétricos do tipo ligado e desligado representado pelos números 1 e 0 sistema binário cada unidade de informação é chamada de bit abreviação de Binary digit
Tipos de dados tratados pelo computador Unindo dois ou mais bits Um bit pode representar dois valores: 1 ou 0, ou então verdadeiro ou falso Pode-se unir dois ou mais bits para representar mais de dois valores quantidade de valores representáveis por uma seqüência de n bits é de 2 n Tipos de dados tratados pelo computador K = 1024 Na vida cotidiana e na física, o "k" vale 1000 1 km = 1000 metros 1 kg = 1000 gramas Número 1024 foi o escolhido para representar o "k" da computação por razões de simplificação de hardware M = 1024 K "M" normalmente vale 1.000.000, na computação vale: 1 M = 1024 k = 1024x1024 = 1.048.576 G = 1024 M "G" que normalmente vale 1 bilhão, na computação vale 1 G = 1024 M = 1024x1024x1024 = 1.073.741.824
Bit e Byte Bits Unidade de memória mais simples Método binário (mais confiável) 65.536 combinações BCD Binary Coded Decimal (IBM) 10.000 combinações 1 byte = 8 bits 0 1 Representação de Caracteres Um caractere normalmente é representado por um byte maioria dos códigos alfanuméricos representam caractere através de um byte código ASCII a letra 'A' é representada pelo byte 0100 0001 uma seqüência de caracteres é expressa por uma cadeia de bytes sucessivos Nem todos os tipos de códigos utilizam os 8 bits de um byte para a representação de caracteres 128 caracteres possíveis sendo que 33 não são imprimíveis (caracteres de controle)
Representação de Caracteres Código de 7 bits (ASCII - American Standard Code for Information Interchange) apareceu com as linguagens de alto nível Representação de Caracteres ASCII Estendido (8 bits utilizados 256 caracteres possíveis) caracteres extras representam caracteres de línguas mortas e caracteres especiais para desenhas figures
Correção de Erros ECC Error Correction Code Bit de paridade (M+K1 bits) M bits Dados de Entrada A K1 bits MP A (K2 bits) Comparação K1-K2 M bits Armazenamento Transferência (M+K1 bits) MP Correção Dados de Saída F I M Perguntas...