Escola Secundária c/3º CEB José Macedo Fragateiro Curso Profissional de Nível Secundário Componente Técnica Disciplina de Sistemas Digitais e Arquitectura de Computadores 2009/2010 Módulo 1: Sistemas de Numeração Pág. 2/10 Conhecer a estrutura de um Sistema de Numeração Um numeral é um símbolo ou grupo de símbolos que representa um número. Os numerais diferem dos números do mesmo modo que as palavras diferem das coisas a que se referem. Os símbolos "11", "onze" e "XI" são numerais diferentes, representando todos o mesmo número. Um sistema de numeração, (ou sistema numeral) é um sistema em que um conjunto de números é representado por numerais de uma forma consistente. Pode ser visto como o contexto que permite ao numeral "11" ser interpretado como o numeral romano para dois, o numeral binário para três ou o numeral decimal para onze. Em condições ideias, um sistema de numeração deve: Representar uma grande quantidade de números úteis (ex: todos os números inteiros, ou todos os números reais); Dar a cada número representado uma única descrição (ou pelo menos uma representação padrão); Reflectir as estruturas algébricas e aritméticas dos números. Por exemplo, a representação comum decimal dos números inteiros fornece a cada número inteiro uma representação única como uma sequência finita de algarismos, com as operações aritméticas (adição, subtracção, multiplicação e divisão) estando presentes como os algoritmos padrões da aritmética. Contudo, quando a representação decimal é usada para os números racionais ou para os números reais, a representação deixa de ser padronizada: muitos números racionais têm dois tipos de numerais, um padrão que tem fim (por exemplo 2,31), e outro que se repete periodicamente (como 2,30999999...). Sistema decimal O sistema decimal é um sistema de numeração de posição1 que utiliza a base dez. Baseia-se numa numeração de posição, onde os dez algarismos indo-arábicos : 0 1 2 3 4 5 6 7 8 9 servem para contar unidades, dezenas, centenas, etc. da direita para a esquerda. Contrariamente à numeração romana, o algarismo árabe tem um valor diferente segundo a sua posição no número: assim, em 111, o primeiro algarismo significa 100, o segundo algarismo 10 e o terceiro 1, enquanto que em VIII (oito em numeração romana) os três I significam todos 1. Assim: 347 3 100 4 10 7 1 3 102 4 101 7 100 No sistema decimal o símbolo 0 (zero) posicionado à esquerda do número escrito não altera seu valor representativo. Assim: 1; 01; 001 ou 0001 representam a mesma grandeza, neste caso a unidade. O símbolo zero posto à direita implica em multiplicar a grandeza pela base, ou seja, por 10 (dez). 1 Valor atribuído a um símbolo dependente da posição em que ele se encontra no conjunto de símbolos que representa uma quantidade. O valor total do número é a soma dos valores relativos de cada algarismo (decimal). Pág. 3/10 Sistema binário O sistema binário é um sistema de numeração posicional em que todas as quantidades se representam utilizando como base o número dois, com o que se dispõe das cifras: zero e um (0 e 1). Os computadores digitais trabalham internamente com dois níveis de tensão2, pelo que o seu sistema de numeração natural é o sistema binário (aceso, apagado). Com efeito, num sistema simples como este é possível simplificar o cálculo, com o auxílio da lógica booleana3. Em computação, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). O sistema binário é base para a álgebra booleana, que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda a electrónica digital e computação está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos electrónicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de computadores são codificados sob forma binária e armazenados em dispositivos (memórias, discos, etc) sob esse formato. Binários a decimais Dado um número N, binário, para expressá-lo em decimal, deve-se escrever cada número que o compõe (bit), multiplicado pela base do sistema (base = 2), elevado à posição que ocupa. A soma de cada multiplicação de cada dígito binário pelo valor das potências resulta no número real representado. Exemplo: 1011 ( 2 ) ___ (10) 1 23 0 22 1 21 1 20 11 130 21110 Portanto, 1011 ( 2 ) 11(10 ) . Decimais a Binários Dado um número decimal, para convertê-lo em binário, basta dividi-lo sucessivamente por 2, anotando o resto da divisão inteira (da direita para a esquerda): 12 0 2 6 0 2 3 1 2 1 Portanto, 12 (10 ) 1100 ( 2 ) . 2 Tensão eléctrica é a diferença de potencial eléctrico entre dois pontos. Sua unidade de medida é o volt, o nome é homenagem ao físico italiano Alessandro Volta. 3 Álgebras booleanas são estruturas algébricas que "capturam a essência" das operações lógicas E, OU e NÃO, bem como das operações da teoria de conjuntos soma, produto e complemento. Pág. 4/10 Aritmética com números de base binária Soma de números binários Recordando as seguintes somas básicas: 1. 0+0=0 2. 0+1=1 3. 1+1=10 Assim, ao se somar 100110101 com 11010101, tem-se: bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 11 0 1 0 1 11 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 + 1 0 1 0 1 Transporte Opera-se como em decimal: começa-se a somar desde a direita, no exemplo, 1+1=10, então escreve-se 0 “e vai" 1. Soma-se este 1 à coluna seguinte. Subtracção de números binários Diminuendo Diminuidor Resultado: - bit 5 bit 4 bit 3 bit 2 bit 1 1 0 1 1 11 0 0 1 0 1 0 1 1 0 1 1 1 0 Transporte A subtracção bit a bit faz-se da seguinte forma: Bit 1: 1 1 0 (transporte 0) Bit 2: 0 1 1 (transporte 1) Bit 3: soma-se o diminuidor com o transporte, isto é, 0 1 1 (transporte da soma é 0). Depois realiza-se a subtracção do diminuendo com o resultado da soma. 0 1 1 (transporte 1) Bit 4: soma-se o diminuidor com o transporte, isto é, 1 1 0 (transporte da soma é 1). Faz-se a subtracção do diminuendo com o resultado da soma, isto é, 1 0 1 (transporte 0) Bit 5: soma-se o diminuidor com o transporte, isto é, 0 1 1 (transporte da soma é 0). Faz-se a subtracção do diminuendo com o resultado da soma, isto é, 1 1 0 (transporte 0) Verificar: 11001( 2 ) 25(10 ) 1011( 2 ) 11(10) 0110( 2 ) 14(10 ) Pág. 5/10 Octal a Decimal A base octal utiliza oito algarismos ou dígitos: 0, 1, 2, 3, 4, 5, 6, 7; por isso se diz que a base deste sistema de numeração é oito (octal) e cada dígito também tem um valor posicional. Para obtermos o equivalente decimal do número 24643701 (8 ) na base octal temos que executar as seguintes operações: 24643701 (8 ) ___ (10 ) 7 6 5 4 3 2 1 0 2 4 6 4 3 7 01 2 87 4 86 6 85 4 84 3 83 7 82 0 81 1 80 5457857(10) Decimal a Octal Dado um número decimal, para convertê-lo em octal, basta dividi-lo sucessivamente por 8, anotando o resto da divisão inteira (da direita para a esquerda): 524 4 8 65 1 8 8 0 8 1 Portanto, 524 (10 ) 1014 (8 ) . Hexadecimal a Decimal A base hexadecimal tem mais vantagem do que a octal, pois representa um número com grande quantidade de bits, numa forma simples e reduzida. Por exemplo, o número binário 1001110100 110110 ( 2 ) 9 D36 (16) . A base hexadecimal é formada por 16 elementos. Como a base dez apenas tem 10 símbolos, os restantes 6 símbolos são representados pelas primeiras 6 letras do nosso alfabeto: A, B, C, D, E, F. Para obtermos o equivalente decimal do número 9D 36 (16 ) na base hexadecimal temos que executar as seguintes operações: 9 D36 (16) ___ (10) 9 163 13162 3161 6 160 40246(10) 93 D 2 3160 ( D 13) Decimal a Hexadecimal Dado um número decimal, para convertê-lo em hexadecimal, basta dividi-lo sucessivamente por 16, anotando o resto da divisão inteira (da direita para a esquerda): 19030 6 16 1189 5 16 74 10 16 4 Portanto, 19030 (10 ) 4 A56 (16 ) . Pág. 6/10 Binário-Octal e vice-versa Utiliza-se o princípio de que para escrever cada dígito octal são necessários somente 3 dígitos binários, visto a relação entre as bases respectivas ser uma potência 3, isto é, 8 2 . O maior dígito em octal corresponde ao dígito 7: 111 ( 2 ) 7 (8) . 3 Dado o número 100101 ( 2 ) , podemos realizar a seguinte conversão: 100 1 2 0 21 0 20 4 101 1 2 0 21 1 20 5 2 2 45 (8) Fazendo a operação inversa chegamos da base octal à base binária: 5 7 Octal 6 101 111 110 O equivalente na base binária é 576 (8 ) 101111110 Binário ( 2) . Binário-Hexadecimal e vice-versa Utiliza-se o princípio de que para escrever um dígito em hexadecimal chegam 4 dígitos 4 em binário, dada a relação entre as bases respectivas ser a potência 4 , isto é, 16 2 . Por exemplo, dado o número 1101101 ( 2 ) , podemos efectuar a seguinte conversão: 0110 0 2 1 22 1 21 0 20 1101 1 2 1 22 0 21 1 20 13( D) 3 3 6 6D(16 ) Fazendo a operação inversa chegamos da base hexadecimal à base binária: 2 4 A 8 0010 0100 1010 1000 Hexadecimal Binário O equivalente na base binária é: 24 A8(16 ) 1001001010 1000 ( 2 ) . Octal-Hexadecimal e vice-versa O método que vamos utilizar é a conversão da base octal para binário e de seguida da base binária para a hexadecimal. Pág. 7/10 Números negativos Os computadores lidam com números positivos e números negativos, logo é necessário encontrar uma representação para números com sinal negativo. Uma possibilidade é inverter todos os bits de um número para representar o número correspondente com sinal negativo. Esta representação é designada por complemento para um. Exemplo 10010 = 011001002 utilizando 8 bits. Invertendo todos os bits obtemos: -10010 = 100110112 O problema desta representação é que existem 2 padrões de bits para o 0. Nomeadamente 010 = 000000002 = 111111112. A solução encontrada consiste em representar os números em complemento para 2. Para determinar o negativo de um número negam-se todos os seus bits e soma-se uma unidade. Exemplo 10010 = 011001002 utilizando 8 bits. Invertendo todos os bits obtemos: 100110112 Somando uma unidade: 100110112 + 1 = 100111002 = -10010 A representação em complemento para 2 tem as seguintes características: O bit da esquerda indica o sinal; O processo indicado no parágrafo anterior serve para converter um número de positivo para negativo e de negativo para positivo; O 0 tem uma representação única: todos os bits a 0; A gama de valores que é possível representar com bits é -2 n-1 ... 2 n-1 -1. Exemplo Qual o número representado por 111001002? Como o bit da esquerda é 1 este número é negativo. Vamos inverter: 000110112 Somando uma unidade: 000110112 + 1 = 000111002 = 2810 Logo 111001002 = - 2810 Exemplo Representar os seguintes números com 16 bits. 0011101010 Positivo, logo: 0000000011101010 11011110 Negativo, logo: 1111111111011110 Pág. 8/10 Exercícios 1. Dados os números na base decimal, converte-os para as bases binária, hexadecimal e octal. a. 281 (10 ) b. 2437 (10) c. 19 (10) d. 41672 (10 ) e. 62462 (10 ) f. 256 (10) 2. Dados os números na base binária, converte-os para as bases decimal, hexadecimal e octal. a. 1111 ( 2 ) b. 11011011 ( 2) c. 11111111 ( 2) d. 0011 ( 2 ) e. 1110111001 101100 f. 1010101010 ( 2) ( 2) 3. Dados os números na base hexadecimal, converte-os para as bases binária, decimal e octal. a. FF(16 ) b. A10B(16) c. 10 C 0 A(16) d. FFFF(16 ) e. E12834 (16 ) f. D(16 ) 4. Dados os números na base octal, converte-os para as bases binária, decimal e hexadecimal. a. 7 (8) b. 213 (8 ) c. 77 (8) d. 6345 (8 ) e. 746325 (8) f. 267 (8 ) 5. Realiza as seguintes operações aritméticas. a. 10011001 ( 2 ) 01110 ( 2 ) b. 0110010111 001100 c. 101001 ( 2 ) 1011 ( 2 ) ( 2) 1001110 ( 2) d. 1101001111 010101 ( 2 ) 1110100110 11101 ( 2 ) Pág. 9/10 6. Para cada uma das contas abaixo 45 – 56 – 23 + 48 – 10 – 14 111 + 30 a. Represente a conta como soma de binários em complemento para 2 usando 8 bits. b. Faça a conta em binário. c. Converta o resultado binário obtido em decimal. Pág. 10/10