Prévia do material em texto
b o o k m a n s é r ie liv ro s d id á tic o s in fo r m á tic a u fr g s 8 s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s volume 3 Linguagens Formais e Autômatos, 6.ed., de Paulo Blauth Menezes volume 4 Projeto de Banco de Dados, 6.ed., de Carlos Alberto Heuser volume 5 Teoria da Computação: Máquinas Universais e Compu tabilidade, 3.ed, de Tiarajú Asmuz Diverio e Paulo Blauth Menezes volume 6 Arquitetura de Computadores Pessoais, 2.ed., de Raul Fernando Weber volume 7 Concepção de Circuitos Integrados, 2.ed., de Ricardo Augusto da Luz Reis e cols. volume 9 Implementação de Linguagens de Programação: Compi ladores, 3.ed., de Ana Maria de Alencar Price e Simão Sirineo Toscani volume 10 Tabelas: Organização e Pesquisa, de Clesio Saraiva dos Santos e Paulo Alberto de Azeredo volume 11 Sistemas Operacionais, 4.ed., de Rômulo Silva de Oliveira, Alexandre da Silva Carissimi e Simão Sirineo Toscani volume 12 Teoria das Categorias para Ciência da Computação, 2.ed., de Paulo Blauth Menezes e Edward Hermann Haeusler volume 13 Complexidade de Algoritmos, 2.ed., de Laira Vieira Toscani e Paulo A. S. Veloso volume 15 Arquiteturas Paralelas, de César A. F. De Rose e Philippe O. A. Navaux volume 16 Matemática Discreta para Computação e Informática, 3.ed., de Paulo Blauth Menezes volume 17 Fundamentos de Circuitos Digitais, de Flávio Rech Wagner, André Inácio Reis e Renato Perez Ribas volume 18 Estruturas de Dados, de Nina Edelweiss e Renata Galante volume 19 Aprendendo Matemática Discreta com Exercícios, de Paulo Blauth Menezes, Laira Vieira Toscani e Javier García López volume 20 Redes de Computadores, de Alexandre Carissimi, Juergen Rochol e Lisandro Zambenedetti Granville Volume 21 Introdução à Abstração de Dados, de Daltro J. Nunes Volume 22 Comunicação de Dados, de Juergen Rochol de computadores de arquitetura fundamentos raul fernando weber 4ª edição 8 w eber fundam entos de arquitetura de com putadores 4ª e d içã o A Bookman Editora é parte do Grupo A, uma empresa que engloba diversos selos editoriais e várias plataformas de distribuição de conteúdo técnico, científi co e profi ssional, disponibilizando-o como, onde e quando você precisar. 8 Obra sem similar na área, fundamentos de arquitetura de computadores apresenta quatro arquiteturas básicas e suas diversas variações para quem deseja analisar as capacidades potenciais de cada uma: o Neander e o Ahmes, computadores extremamente simples; o Ramses, computador com diversos modos de endereçamento; e o Cesar, inspirado na família de computadores PDP-11. Além dessas arquiteturas simuladas, o livro analisa a programação de baixo nível da família 80 x 86 dos microprocessadores Intel, devido a sua larga difusão no mercado. Outros tópicos abordados são a representação de dados em sistemas de computação e os algoritmos básicos de soma, subtração, multiplicação e divisão em binário. São ilustradas as notações aritméticas de ponto fi xo e de ponto fl utuante, bem como os fundamentos de sistemas de codifi cação. Livro-texto para as disciplinas de introdução à arquitetura de computadores, introdução à informática, arquitetura de computadores, aritmética computacional, programação em linguagem de máquina e linguagem assembler nos cursos de ciência da computação, engenharia de computação e sistemas de informação. Material didático para professores Visite www.bookman.com.br raul fernando weber de computadores de arquitetura fundamentos l i v r o s d i s p o n í v e i s COMPUTAÇÃO/FUNDAMENTOS www.grupoa.com.br 031132_serie-ufrgs-8-Weber-FINAL.indd 1031132_serie-ufrgs-8-Weber-FINAL.indd 1 19/abril/12 16:5819/abril/12 16:58 W373f Weber, Raul Fernando. Fundamentos de arquitetura de computadores [recurso eletrônico] / Raul Fernando Weber. – 4. ed. – Dados eletrônicos. – Porto Alegre : Bookman, 2012. Editado também como livro impresso em 2012. ISBN 978-85-407-0143-4 1. Ciência da computação. 2. Arquitetura dos computadores. I. Título. CDU 004.2 Catalogação na publicação: Fernanda B. Handke dos Santos – CRB 10/2107 o autor Raul Fernando Weber é engenheiro eletrônico e mestre em ciência da computação pela UFRGS e doutor em ciência da computação pela Universidade de Karlsruhe, Alemanha. É professor associado do Instituto de Informática da UFRGS. Participa ativamente da comissão de graduação do curso de ciência da computação, da câmara de graduação e do conselho de ensino, pesquisa e extensão, todos da UFRGS. Suas áreas de interesse são arquitetura de computadores, segurança de sistema de computação, criptografia, programação segura e história da computação. ■ ■ Os números são representados no sistema decimal, mas os computadores utilizam o sistema binário. Embora empreguem símbolos distintos, os dois sistemas formam números a partir das mesmas regras e podem ser facilmente convertidos entre si. De fato, os números podem ser representados em qualquer base maior ou igual a dois, e essas representações podem ser facilmente convertidas de uma frase para outra. Os principais métodos de conversão, baseados em aritmética decimal, são apresentados neste capítulo. bases numéricas capítulo 1 Weber_01.indd 1Weber_01.indd 1 18/04/12 14:3318/04/12 14:33 2 Fundamentos de Arquitetura de Computadores 1.1 introdução Quando o homem aprendeu a contar, ele foi obrigado a desenvolver símbolos que repre- sentassem as quantidades e grandezas que ele queria utilizar. Esses símbolos, os algarismos, constituem a base dos sistemas de numeração. Nos tempos pré-históricos o homem utilizou uma correspondência um para um entre os obje- tos a serem contados e os seus dedos, ou então para pedrinhas ou mesmo para “riscos”. Um sistema deste tipo seria um “sistema unário” (com um único símbolo): Os primeiros algarismos encontrados consistiam em marcas horizontais ou verticais (como as mostradas) com traços de ligação entre elas para definir as quantidades superiores a um. Os símbolos romanos básicos podem ser considerados como uma evolução desse sistema. Os algarismos romanos são basicamente aditivos: assim, por exemplo, III = I + I + I. Para facilitar a representação de grandes quantidades, foram introduzidos símbolos especiais para grupos: I = 1 V = 5 X = 10 L = 50 C = 100 D = 500 M = 1000 Além disso, havia uma série de regras (como a posição relativa dos símbolos aos seus vizi- nhos), que permitiam interpretar estes símbolos e determinar o número que estava sendo representado: VI = 5 + 1 = 6 CXVI = 100 + 10 + 5 + 1 = 116 IV = 5 – 1 = 4 MCMLIX = 1000 + (1000 – 100) + 50 + (10 – 1) = 1959 A realização de cálculos com este sistema, especialmente para operações como multiplicação e divisão, era extremamente complexa e de aplicação praticamente impossível. Posteriormen- te, os árabes utilizaram um sistema originário da Índia, que possuía 10 algarismos (0 a 9), com os seguintes símbolos (da esquerda para a direita, 1234567890): Weber_01.indd 2Weber_01.indd 2 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 3 Este sistema começou a ser utilizado na Europa no século 12 e é conhecido atualmente como sistema de numeração arábica (mas com outros algarismos), destacando-se pelas seguintes características: ■ existe um símbolo para o valor nulo. ■ cada algarismo utilizado é uma unidade maior que o seu predecessor. ■ a notação é posicional, ou seja, o valor de um algarismo é determinado pela sua posição dentro do número. Cada posição possui um determinado peso. 1.2 representação de números Os sistemas atuais formam os números pela fórmula a seguir, em que a representa o número propriamente dito, B, a base do sistema de numeração (B≥2), xi, os algarismos (0≤xiPara i com valores positivos, tem- -se pesos maiores que a unidade; para i=0 tem-se exatamente o peso unitário (B0=1). Para valores negativos de i, tem-se pesos menores que a unidade (fracionários). Para o caso espe- cífico de números inteiros, utilizando-se n dígitos (ou “casas”), indexados de 0 (dígito menos significativo) até n–1 (dígito mais significativo), a fórmula fica: ou, por extenso, expandindo-se o somatório: a = xn–1.Bn-1 + xn–2.Bn–2 + . . . . + x2.B2 + x1.B1 + x0.B0 ou ainda, simplificando-se a expressão: a = xn–1.Bn–1 + xn–2.Bn–2 + . . . . + x2.B2 + x1.B + x0 Weber_01.indd 3Weber_01.indd 3 18/04/12 14:3318/04/12 14:33 4 Fundamentos de Arquitetura de Computadores Para os sistemas de numeração utilizam-se as seguintes regras: ■ a base B de um sistema é igual à quantidade de algarismos distintos utilizados. Para a base decimal, tem-se dez algarismos distintos (de 0 a 9). ■ quando uma posição é ocupada pelo maior algarismo e ela deve ser aumentada de uma unidade, esta posição recebe o símbolo nulo e a posição seguinte deve ser aumentada de uma unidade. Assim, 9+1=10, 19+1=20, 99+1=100, 1999+1=2000. ■ o algarismo mais à direita (denominado de dígito menos significativo) tem peso um. O al- garismo imediatamente à esquerda tem o peso da base B, o seguinte à esquerda tem peso de B ao quadrado, depois B ao cubo, e assim por diante. ■ o valor de cada algarismo de um número é determinado multiplicando-se o algarismo pelo peso de sua posição. ■ o valor de um número é determinado pela soma dos valores de cada algarismo. 1.3 transformação entre bases Os computadores atuais utilizam internamente somente um sistema de numeração: o sistema binário (B=2), com os algarismos 0 e 1. Este sistema foi estudado profundamente pelo mate- mático alemão Leibniz, no século 17. Somente com o advento dos computadores eletrônicos digitais, entretanto, tal sistema começou a ser utilizado na prática. Atualmente, todos os computadores usam internamente o sistema binário para armazenamento e manipulação de números e dados. O tratamento de números representados em outras bases ocorre por meio de rotinas de codificação e decodificação. O mesmo ocorre com símbolos alfanuméricos. 1.3.1 método polinomial Como cada número pode ser representado por um polinômio em uma certa base, tudo o que se deve fazer para transformar um número de uma base para outra é interpretar este número como um polinômio utilizando a aritmética da base de destino: 1100012 = 1.25 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 = 32 + 16 + 0 + 0 + 0 + 1 = 4910 1100012 = 1.25 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 = 408 + 208 + 0 + 0 + 0 + 18 = 618 Nesses exemplos, simplesmente foi aplicada a fórmula: a = xn–1.Bn-1 + xn–2.Bn–2 + . . . . + x2.B2 + x1.B + x0 em que B é a base de origem, e a, o número resultante na base de destino. Observe que todos os cálculos são realizados na aritmética da base de destino. Weber_01.indd 4Weber_01.indd 4 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 5 1.3.2 método de subtrações Sabendo que um número em uma determinada base B é representado pela fórmula a = xn–1.Bn–1 + xn–2.Bn–2+ . . . . + x2.B2 + x1.B + x0 a conversão para a determinação dos coeficientes xi é iniciada da esquerda (xn–1) para a direita (até x0). Inicia-se determinando os valores de n (a quantidade de dígitos necessária) e de xn–1 (o dígito mais significativo). Para tanto procura-se o produto (na base de origem) do maior coeficiente pela maior potência da nova base, que está contido no número a ser convertido, ou seja, procura-se o maior produto xn–1.Bn–1 que seja menor (ou igual) que a. Este coeficiente xn–1 é o algarismo a ser utilizado na posição mais à esquerda (dígito mais significativo) do número na nova base. Subtrai-se este produto do número a ser convertido. Com isso tem-se: a’ = a – xn–1.Bn–1 = xn–2.Bn–2 + . . . . + x2.B2 + x1.B + x0 Para determinar o algarismo seguinte à direita (xn–2), repete-se o processo, usando agora a di- ferença do passo anterior (a’) e a potência imediatamente inferior (se no passo anterior usou- -se a potência Bi, utiliza-se agora Bi–1), e assim sucessivamente até todos os n dígitos terem sido determinados. Note que o resultado das diversas subtrações sempre deve ser positivo (ou zero). Se a subtração não for possível, isso indica que o coeficiente xi é zero. Para converter o número decimal 681 para binário, por exemplo, tem-se os seguintes cálculos: 681 – 1.29 = 681 – 512 = 169 169 – 0.28 = 169 – 0.256 = 169 169 – 1.27 = 169 – 128 = 41 41 – 0.26 = 41 – 0.64 = 41 41 – 1.25 = 41 – 32 = 9 9 – 0.24 = 9 – 0.16 = 9 9 – 1.23 = 9 – 8 = 1 1 – 0.22 = 1 – 0.4 = 1 1 – 0.21 = 1 – 0.2 = 1 1 – 1.20 = 1 – 1 = 0 Ou seja, o número final, em binário, é 1010101001. Se o resultado de uma subtração produzir resultado zero, isso significa que todos os dígitos restantes são zero, como no exemplo a seguir. 680 – 1.29 = 680 – 512 = 168 168 – 0.28 = 168 – 0.256 = 168 168 – 1.27 = 168 – 128 = 40 40 – 0.26 = 40 – 0.64 = 40 40 – 1.25 = 40 – 32 = 8 8 – 0.24 = 8 – 0.16 = 8 8 – 1.23 = 8 – 8 = 0 Weber_01.indd 5Weber_01.indd 5 18/04/12 14:3318/04/12 14:33 6 Fundamentos de Arquitetura de Computadores Os coeficientes restantes (x2, x1 e x0) são iguais a zero, e o número final, em binário, é 1010101000. O método também se aplica para números com frações. Se não for possível chegar a zero após um certo número de posições, interrompe-se o método após obter-se o número de casas desejado. 6,125 – 1.22 = 6,125 – 4 = 2,125 2,125 – 1.21 = 2,125 – 2 = 0,125 0,125 – 0.20 = 0,125 – 0.1 = 0,125 0,125 – 0.2 – 1 = 0,125 – 0.0,5 = 0,125 0,125 – 0.2 – 2 = 0,125 – 0.0,25 = 0,125 0,125 – 1.2 – 3 = 0,125 – 0,125 = 0 Ou seja, o número final é 110,001. O método também se aplica para outras bases. Seja a conversão de 6,8125 de decimal para octal: 6,8125 – 6.80 = 6,8125 – 6 = 0,8125 0,8125 – 6.8 – 1 = 0,8125 – 0,7500 = 0,0625 0,0625 – 4.8 – 2 = 0,0625 – 0,0625 = 0 Ou seja, 6,812510=6,648. Note que sempre se utiliza a aritmética da base de origem. 1.3.3 método das divisões O número a ser convertido é dividido pela nova base (na aritmética da base de origem). O res- to desta divisão forma o algarismo mais à direita (menos significativo) do número convertido. O quociente é novamente dividido, e assim sucessivamente, até o resto ser zero. A sequência de todos os restos forma o novo número. Note que ao dividir o número a pela base B obtém-se: a /B = (xn–1.Bn–1 + xn–2.Bn–2 + . . . . + x2.B2 + x1.B + x0)/B ou seja a /B = xn–1.Bn–2 + xn–2.Bn–3 + . . . . + x2.B1 + x1, com resto igual a x0 A divisão seguinte por B produz como resto x1, e assim sucessivamente até xn–1. 53 ÷ 2 = 26, resta 1 26 ÷ 2 = 13, resta 0 13 ÷ 2 = 6, resta 1 6 ÷ 2 = 3, resta 0 3 ÷ 2 = 1, resta 1 1 ÷ 2 = 0, resta 1 Weber_01.indd 6Weber_01.indd 6 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 7 Número binário resultante: 110101 Para frações, o método se modifica um pouco: a fração é multiplicada pela nova base; a parte inteira resultante forma o algarismo mais à esquerda da nova fração e a parte fracionária é submetida novamente ao método, até o resultado ser zero (ou até atingir-se o número de dígitos significativos desejado). Exemplo: 0,828125 . 2 = 1,65625 Parte inteira = 1 Fração = 0,1 0,65625 . 2 = 1,3125 Parte inteira = 1 Fração = 0,11 0,3125 . 2 = 0,625 Parte inteira = 0 Fração = 0,110 0,625 . 2 = 1,25 Parte inteira = 1 Fração = 0,1101 0,25 . 2 = 0,5 Parte inteira = 0 Fração = 0,11010 0,5 . 2 = 1,0 Parte inteira = 1 Fração = 0,110101 1.3.4 método da substituição direta Este é o método mais fácil, mas funciona somente para bases que são potências inteiras entre si, por exemplo, de octal para binário (e vice-versa), ou de hexadecimal para binário (e vice- -versa). Seja B1=B2m; para um determinado m inteiro, tem-se as seguintes regras: ■ para converter de B1 (a maior base) para B2 (a menor base), cada algarismo de B1 é subs- tituído por m algarismos equivalentes deB2: 5 1 78 = 101 001 1112 7 0 C16 = 0111 0000 11002 ■ para converter de B2 para B1, agrupam-se os algarismos em grupos de m, tomando-se a vírgula como referência, ou seja, formam-se grupos de m algarismos tanto para a esquerda da vírgula (parte inteira) como para a direita (parte fracionária). Cada grupo é então trans- formado no seu algarismo equivalente na nova base: 1110,011012 = 001 110 , 011 010 = 1 6 , 3 28 1110,011012 = 1110 , 0110 1000 = E , 6 816 Observe que este método também pode ser utilizado entre duas bases que não sejam dire- tamente uma potência da outra, desde que ambas sejam potências inteiras de uma terceira base. Assim, por exemplo, pode-se converter da base octal para hexadecimal (usando a base 2 como terceira base). Weber_01.indd 7Weber_01.indd 7 18/04/12 14:3318/04/12 14:33 8 Fundamentos de Arquitetura de Computadores ■ exercícios propostos 1. Converter para a base decimal os seguintes números: a) 1010102 e) 21658 b) 10103 f) 1FA216 c) 10214 g) E1A16 d) 10256 h) 7078 2. Usando o método das divisões, converter os seguintes números decimais para a base indicada: a) 96 para a base ternária e) 49 para a base quaternária b) 96 para a base octal f) 57 para a base ternária c) 258 para a base hexadecimal g) 56 para a base binária d) 258 para a base binária h) 56 para a base hexadecimal 3. Usando o método das subtrações, converter os seguintes números decimais para a base indicada: a) 96 para a base ternária e) 49 para a base quaternária b) 96 para a base octal f) 57 para a base ternária c) 258 para a base hexadecimal g) 56 para a base binária d) 258 para a base binária h) 56 para a base hexadecimal 4. Usando o método das substituições, converter os seguintes números para a base indi- cada: a) 1011000110102 para a base octal b) 1011000110102 para a base hexadecimal c) 001011001012 para a base octal d) 001011001012 para a base hexadecimal e) 3478 para a base binária f) 72418 para a base binária g) 3AF16 para a base binária h) 7E4B16 para a base binária 5. Qual é o valor decimal de 011011012? Qual é a representação binária de 654? 6. Converter para binário os seguintes números decimais: a) 39 c) 256,75 b) 0,4475 d) 129,5625 7. Converter para decimal os seguintes números binários: a) 01101 c) 0111011,1011 b) 0,001101 d) 010110011 Weber_01.indd 8Weber_01.indd 8 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 9 8. Converter os seguintes números hexadecimais em decimais: a) B6C7 b) D2763 c) 9,1A 9. Converter os seguintes números octais em binário: a) 56 c) 231,2 b) 32,234 d) 3364 10. Converter os seguintes números hexadecimais em binários: a) AB2 c) 649 b) 12,A d) 0,D19 11. Converter os seguintes números binários em hexadecimais: a) 010110111 b) 011110,01011 c) 01110100010101 Termos-chave conversão de frações, p. 6 conversão direta, p. 6 conversão polinomial, p. 4 conversão por divisões, p. 5 conversão por subtrações, p. 5 representação polinomial, p. 4 sistema de numeração arábica, p. 3 Weber_01.indd 9Weber_01.indd 9 18/04/12 14:3318/04/12 14:33 capítulo ■ ■ Utilizando a base binária para representar números, e limitadas ainda pelo uso de somente dois símbolos distintos, as operações aritméticas básicas sofreram algumas adaptações nos computadores. A soma permanece a mesma, utilizando a mesma metodologia decimal, mas para a subtração e a consequente representação de quantidades negativas utiliza-se a representação em complemento de dois. Uma representação em sinal e magnitude, tal como usada no sistema decimal, é possível e é utilizada, mas a representação interna dos números nos computadores atuais é baseada na representação em complemento. 2 em computação sistemas de numeração Weber_02.indd 11Weber_02.indd 11 18/04/12 14:3218/04/12 14:32 12 Fundamentos de Arquitetura de Computadores 2.1 introdução Em todas as fórmulas usadas a seguir, ‘B’ representa a base do sistema de numeração, ‘n’, a quantidade de dígitos disponíveis para representar os números, e ‘a’, ‘b’ e ‘c’ indicam núme- ros quaisquer. A fórmula utilizada para representar um número inteiro será expressa por a = Σn–1xiB i, ficando implícita a variação de i desde 0 até o limite (n–1). Para uma determinada base B, empregando n dígitos, pode-se representar Bn combinações distintas, ou seja, Bn números distintos. Assim, para uma base decimal com três dígitos é possível representar 1000 números distintos (incluindo o zero!). Entretanto, com os mesmos três dígitos e base 2, representa-se somente oito números distintos. Assim, números binários vão exigir muitos dígitos, e normalmente se trabalha com grandes cadeias de zeros e uns, o que leva a erros visuais. Logo, são empregadas as notações em base 8 e em base 16 para representar números binários, por serem mais compactas. A Tabela 2.1 lista os primeiros dezesseis números em binário, decimal, octal e hexadecimal. tabela 2.1 Números em binário, decimal, octal e hexadecimal binário decimal octal hexadecimal 0000 0 00 0 0001 1 01 1 0010 2 02 2 0011 3 03 3 0100 4 04 4 0101 5 05 5 0110 6 06 6 0111 7 07 7 1000 8 10 8 1001 9 11 9 1010 10 12 A 1011 11 13 B 1100 12 14 C 1101 13 15 D 1110 14 16 E 1111 15 17 F Weber_02.indd 12Weber_02.indd 12 18/04/12 14:3218/04/12 14:32 Capítulo 2 Sistemas de Numeração em Computação 13 Em computação trabalha-se normalmente com quatro bases: a decimal, para a entrada e saída dos dados (já que nossa sociedade é baseada no sistema decimal); a binária, para os cál- culos internos; a hexadecimal, como forma compactada de representação interna; e a octal, também por este motivo. Note que a escolha das bases 8 e 16 não é ocasional: as transforma- ções entre as bases 2, 8 e 16 podem ser feitas facilmente pelo método da substituição direta. Embora a base hexadecimal seja de representação mais complexa (utiliza letras e dígitos), ela é preferida sobre a base octal por ser mais compacta, ou seja, requerer menos espaço para representar os resultados. Os números do sistema binário são formados como quaisquer outros números do sistema de numeração arábico (inclusive em octal ou hexadecimal): cada novo número é obtido por enumeração, somando-se um ao seu antecessor (e observando a regra do “vai-um”). Cada dígito do sistema binário (0 e 1) é denominado de bit, a contração de binary digit. A determinados conjuntos de bits são empregados nomes específicos. Assim, um quarteto (4 bits) é frequentemente denominado de nibble, e um octeto (8 bits) recebe a denominação de byte (ou o termo aportuguesado baite). Os múltiplos destes conjuntos utilizam os mesmos denominadores que no sistema decimal (K para kilo, M para Mega, G para Giga, T para Tera, P para Peta), mas o fator multiplicativo não é 1000 (103), e sim 1024 (210). Assim, um kilobit (abreviado 1Kb) contém 1024 bits, e um kilobyte (abreviado 1KB), 1024 bytes. Um megabyte (1MB) contém 1024 KB, um gigabyte (1GB), 1024 MB, um terabyte (1TB), 1024 GB, e assim por diante. 2.2 soma de números binários A soma de dois números binários utiliza as mesmas regras da soma no sistema decimal. Entre- tanto, como existem somente dois símbolos, a tabela de soma é simples: tabela 2.2 Tabela verdade de um meio-somador (half adder) a c d = a + c 0 0 0 0 1 1 1 0 1 1 1 0 e “vai-um” Weber_02.indd 13Weber_02.indd 13 18/04/12 14:3218/04/12 14:32 Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra.