Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Arquitetura de Computadores (ARQI1) ADS171 Aula 02: Sistemas de numeração. Sistemas de numeração Alberto Ferreira Números binários Computador: provido de componentes eletrônicos digitais, os quais reconhecem somente níveis de tensão elétrica em dois estados: presente ou não presente. Assim sendo, os circuitos digitais iram operar com a presença de tensão elétrica ou sua não presença. A grosso modo, diríamos que só nos interessa dois estados: ligado (ON) ou desligado (OFF). Neste caso, o sistema decimal por nós utilizados, com 10 diferentes dígitos (0 a 9) não pode ser reconhecido pelos circuitos digitais. Torna-se necessário o uso de um sistema numérico com 2 dígitos: o sistema binário. O sistema binário, ou de base 2, funciona de maneira análoga ao decimal, porém com apenas dois dígitos, 0 e 1. Neste caso, o dígito 0 é representado pela não presença de tensão elétrica enquanto o 1 pela presença de tensão elétrica. Os dígitos de um sistema binário são chamados de bit, de Binary digiT (dígito binário). Sistemas de numeração Alberto Ferreira Números binários Exemplos Decimal (base 10): 4637 103 x 4 + 102 x 6 + 101 x 3 + 100 x 7 1000 x 4 + 100 x 6 + 10 x 3 + 1 x 7 = 4637 Binário (base 2): 1101 23 x 1 + 22 x 1 + 21 x 0 + 20 x 1 8 x 1 + 4 x 1 + 2 x 0 + 1 x 1 = 13 em decimal Sistemas de numeração Alberto Ferreira Números binários Um modo prático de convertermos números binários em decimal seria colocar o “peso” de cada casa em cima de cada dígito, multiplicar pelo dígito e somar os produtos. Como qualquer número multiplicado por zero dá zero e multiplicado por um dá o próprio número, bastaria somar os “pesos” cujas casas são ocupadas por dígitos 1. Exemplo: 128+64+16+4+2 = 214 27 128 26 64 25 32 24 16 23 8 22 4 21 2 20 1 1 1 0 1 0 1 1 0 Sistemas de numeração Alberto Ferreira Números binários Como o bit à direita, cujo casa eqüivale a 2 elevado a zero é a de menor peso (1), este bit é chamado de bit menos significativo (LSB – Least Significant Bit). Como é a única casa com peso ímpar, todo número binário ímpar terá este bit em 1. O bit mais à esquerda, independente da quantidade de dígitos, terá a casa de maior peso, sendo conhecido por bit mais significativo (MSB – Most Significant Bit). Quando um determinado bit está em 1,dizemos que ele está setado e que eletrônicamente representará presença de tensão elétrica. O contrário, quando o bit está em 0, dizemos que ele está resetado, indicando a ausência de tensão elétrica. Sistemas de numeração Alberto Ferreira Números binários Para convertermos um número decimal para binário, basta ir dividindo este por 2, até que o quociente seja 1 ou 0, ler resultado da última divisão e os restos das divisões anteriores e alinhá-los da esquerda para a direita. Veja o exemplo: 1 0 1 1 0 1 0 1 Para que não confundamos números como 11 (onze), 110(cento e dez), etc, com números binários, alguns programas e autores colocam a letra B após o número binário. Ex.: 1101B, 001010b. 181 2 1 90 2 0 45 2 1 22 2 0 11 2 1 5 2 1 2 2 0 1 Sistemas de numeração Alberto Ferreira Tipos de dados binários 70 byte BYTE Endereço N 15 0 Parte alta Parte baixa WORD Endereço N+1 Endereço N 31 15 0 Palavra alta Palavra Baixa DOUBLEWORD Endereço N+3 Endereço N+2 Endereço N+1 Endereço N 63 47 31 15 0 Doubleword alta Doubleword baixa QUADWORD Endereço N+7 Endereço N+6 Endereço N+5 Endereço N+4 Endereço N+3 Endereço N+2 Endereço N+1 Endereço N Sistemas de numeração Alberto Ferreira Múltiplos de bytes Sistemas de numeração Alberto Ferreira Números hexadecimais A base 16 ou hexadecimal tem 16 dígitos: 0 a 9, letras A, B, C, D, E e F, sendo que a letra A vale 10 em decimal, B vale 11, C vale 12, D vale 13, e vale 14 e F vale 15. Por formarem números com 0A, 7F, CAFÉ, B0BA, torna-se fácil a digitação e memorização de tais números. Muitos códigos em programação, até mesmo em ambientes visuais como o Visual Basic, estão definidos em base hexadecimal. Para não confundirmos os números hexadecimais (ou simplesmente hexa) com binários ou decimais, colocamos uma letra H (ou h) ao final do número. Tal base funcionará de maneira análoga as bases decimais e hexadecimais, porém as casas terão uma base dezesseis (160, 161, 162, ...) e para conversão, divisão por 16. Porém, na prática, o que mais aplicamos é transformar um número binário para hexadecimal. Para isto há uma regra básica: dividir o número binário em conjuntos de 4 bits, converte-lo para decimal e aí converte-lo para seu equivalente hexadecimal Sistemas de numeração Alberto Ferreira Números hexadecimais Exemplo: Número binário (word): 0111111101010000b Dividindo em grupos de 4 bits: 0111 1111 0101 0000 Transformando em decimal: 7 15 5 0 Equivalente em hexadecimal: 7 F 5 0 Número em hexadecimal: 7F50h decimal binário hexadecimal decimal binário hexadecimal 0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 10 1010 A 3 0011 3 11 1011 B 4 0100 4 12 1100 C 5 0101 5 13 1101 D 6 0110 6 14 1110 E 7 0111 7 15 1111 F Sistemas de numeração Alberto Ferreira Números hexadecimais Exemplo: Em decimal: 163 162 161 160 4096 256 16 1 x x x x 7 15 5 0 (F) 28672 + 3840 + 80 + 0 = 32592 Sistemas de numeração Alberto Ferreira Armazenamento em memória Ao colocarmos um dado binário na memória, ele irá ocupar uma determinada quantidade de endereços, dependendo de seu tamanho (byte, word, doubleword, quadword), a começar pelo endereço fornecido para o armazenamento até o número de endereços necessários. O armazenamento começa no endereço fornecido, armazenando da parte baixa para a parte alta: como se o dado ficasse “de cabeça para baixo” na memória. Este esquema de ordenação é conhecido por little endian. Doublewordarmazenada a partir do 14 endereço 10, contendo 8CFE0636h 8C 13 FE 12 Wordarmazenada a partir do 06 11 Quadwordarmazenada no endereço 11, contém FE06h 36 10 Endereço 6, contendo 1F 9 8CFE06361FA4230Bh A4 8 Byte, armazenado no endereço 23 7 7, contendo 23h 0B 6 5 4 3 2 1 0 Sistemas de numeração Alberto Ferreira Números com sinal em binário Para se representar números binários com sinal – positivos e negativos – uma das técnicas mais utilizadas é a de complemento de dois ou 2º complemento. Esta técnica consiste em representar o número com o bit mais significativo indicando o sinal: 0 se positivo, 1 se negativo. Neste caso, como “perderíamos” um bit na representação do valor, teríamos uma redução da faixa. Por exemplo, em um byte, que representa 256 combinações, o total de combinações seria reduzido para 128, ou seja, total de combinações com 7 bits. Mas a técnica do 2º complemento não basta indicar o sinal no bit mais significativo. É necessário perfazer os seguintes passos: Se o número estiver na faixa correta e for positivo, não alterá-lo. b) Se o número estiver na faixa correta e for negativo: Representar o número sem sinal, na quantidade de bits desejada; Inverter todos os bits: 0 passa para 1 e 1 passa para 0; Somar 1 ao resultado invertido. Sistemas de numeração Alberto Ferreira Números com sinal em binário Exemplo: 8 bits – Faixa: positivos: 0 a +127 e negativos: -128 a -1 + 100 em binário: 01100100 em 2º complemento: 01100100 - 115 em binário (115): 01110011 invertendo: 10001100 somando 1 + 1 resultado: 10001101 em 2º complemento. Note que como o zero está incluído na faixa dos positivos, a faixa dos negativos será sempre de 1 número maior que os positivos. Sistemas de numeração Alberto Ferreira Números com sinal em binário Uma outra forma de representarmos números negativos é a técnica do excesso de n ou excesso de 2n-1. Neste sistema, um número de n bits negativo será representado pelo número mais o valor de 2 elevado à n-1. Por exemplo, o número –5 se representado nesta técnica utilizando 8 bits: 8 bits = 28-1 = 27 = 128 -5 + 128 = 123 123 em binário = 01111011b, em 8 bits Portanto, –5 em excesso de 128 = 01111011b Sistemas de numeração Alberto Ferreira
Compartilhar