Aula 2 – Sistemas de Numeração (Revisão) Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Anderson Moreira Arquitetura de Computadores 1 O que fazer com essa apresentação Anderson Moreira Arquitetura de Computadores 2 Agenda • • • • • • Breve revisão da aula anterior Introdução Sistemas de Numeração Conversão de Bases Representação de números Exemplos Anderson Moreira Arquitetura de Computadores Breve evolução dos componentes Válvula Circuito Integrado Transistores Anderson Moreira Arquitetura de Computadores 4 Evolução dos processadores Anderson Moreira Arquitetura de Computadores 5 Anderson Moreira Arquitetura de Computadores 6 Introdução • Não tem como fugir: – Matemática Computação • Com Arquitetura de Computadores o sistema se torna o mesmo: – Tudo depende em parte de sistemas matemáticos de estudo; • Porém qual o método mais prático de contagem? Anderson Moreira Arquitetura de Computadores Introdução • No início utilizou-se o sistema de correspondência um-para-um, para cada objeto e os dedos das mãos; • Aprimoramento foi o uso de traços: • Os primeiros algarismos encontrados consistiam de marcas horizontais e verticais (como os acima). Podemos considerar os romanos como a evolução dos traços: I=1 • V = 5 X = 10 L = 50 D = 500 M = 1000 C = 100 Além disso utilizou uma série de regras para formar números de grandeza maior: VI = 5+1 = 6 IV = 5-1 = 4 CXVI = 100+10+5+1 = 116 Anderson Moreira Arquitetura de Computadores Introdução • A realização de cálculos com esse sistema, especialmente para operações como multiplicação e divisão era extremamente complexa e de aplicação praticamente impossível: Exercício 1 – Procurar como realizar operações matemáticas com algarismos romanos. • Posteriormente os árabes utilizaram-se de um sistema originário da Índia, que possuía 10 algarismos (0 a 9) Anderson Moreira Arquitetura de Computadores Introdução Anderson Moreira Arquitetura de Computadores Introdução • Esse sistema começou a ser utilizado na Europa no século 12. Destaca-se pelas seguintes características: – Existe um símbolo para o valor nulo; – Cada algarismo utilizado é uma unidade maior que seu predecessor; – A notação é posicional; – Cada posição possui um determinado peso. Anderson Moreira Arquitetura de Computadores Representação de números • Os sistemas atuais formam os números pela fórmula a seguir, onde a representa o número propriamente dito; B representa a base do sistema de numeração (B >= 2); xi representa os algarismos (0 ≤ xi ≤ B); e o intervalo de –m a n-1 representa o número de posições utilizadas. Com B=10 tem-se o sistema decimal. a= n −1 ∑ (x ⋅ B ) i i =− m Anderson Moreira i Arquitetura de Computadores Representação de números • 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 10 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; – O algarismo mais à direita (digito menos significativo) tem peso 1, o imediatamente a esquerda tem peso B, o seguinte peso B ao quadrado e assim sucessivamente; – 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. Anderson Moreira Arquitetura de Computadores A Informação e sua Representação • Os computadores manipulam dados (sinais brutos e sem significado individual) para produzir informações. • A conversão de dados em informações, e estas novamente em dados, é uma parte tão fundamental em relação ao que os computadores fazem que é preciso saber como a conversão ocorre para compreender como o computador funciona. • Infelizmente os computadores não usam nosso sistema de numeração. Anderson Moreira Arquitetura de Computadores A Informação e sua Representação Sistema de Numeração • • • • • Conjunto de símbolos utilizados para representação de quantidades e de regras que definem a forma de representação. Cada sistema de numeração é apenas um método diferente de representar quantidades. As quantidades em si não mudam, mudam apenas os símbolos usados para representá-las. A quantidade de algarismos disponíveis em um dado sistema de numeração é chamada de base. Representação numérica mais empregada: notação posicional. Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Não Posicionais Valor atribuído a um símbolo é inalterável, independente da posição em que se encontre no conjunto de símbolos que representam uma quantidade. Sistema de numeração Romano XXI 10 Anderson Moreira 10 XIX 1 Arquitetura de Computadores 10 1 10 Sistemas de Numeração Posicionais Valor atribuído a um símbolo dependente da posição em que se encontre no conjunto de símbolos que representa uma quantidade. Sistema de Numeração Decimal 5 7 3 500 Anderson Moreira 70 3 5 7 3 300 Arquitetura de Computadores 50 7 Sistemas de Numeração • Sistema de numeração – código • Operação básica – contagem • Grupo com um determinado número de objetos – base (raiz) • Sistemas de numeração básicos: – – – – Decimal Binário Octal Hexadecimal Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Exemplos de Sistemas de Numeração Sistema Base Algarismos Binário 2 0,1 Ternário 3 0,1,2 Octal 8 0,1,2,3,4,5,6,7 Decimal 10 0,1,2,3,4,5,6,7,8,9 Duodecimal 12 0,1,2,3,4,5,6,7,8,9,A,B Hexadecimal 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Como os números representados em base 2 são muito extensos e, portanto, de difícil manipulação visual, costuma-se representar externamente os valores binários em outras bases de valor mais elevado (octal ou hexadecimal). Isso permite maior compactação de algarismos e melhor visualização dos valores. Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Padrões de Representação • • Letra após o número para indicar a base; Número entre parênteses e a base como um índice do número. • Exemplo: – Sistema Decimal – 2763D ou (2763)10 ou 276310 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Sistema Decimal (Base 10) • Sistema mais utilizado. • 10 símbolos para representar quantidades. 0 1 2 3 4 5 6 7 8 9 • Peso – representar quantidades maiores que a base. • Peso trouxe: unidade, dezena, (dez unidades), centena (cem unidades), milhar (mil unidades), dezena de milhar, centena de milhar, etc. • Exemplo: 2574 é composto por 4 unidades, 7 dezenas, 5 centenas e 2 milhares, ou 2000 + 500 + 70 + 4 = 2574 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Sistema Binário (Base 2) • Utiliza dois símbolos para representar quantidades. 0 e 1 • Segue as regras do sistema decimal - válidos os conceitos de peso e posição. Posições não têm nome específico. • Cada algarismo é chamado de bit. Exemplo: 1012 • Expressão oral - diferente dos números decimais. – Caractere mais à esquerda - Most-Significative-Bit “MSB”. – Caractere mais à direita - Least-Significative-Bit - “LSB”. Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Sistema Octal (Base 8) • Utiliza 8 símbolos. 0 1 2 3 4 5 6 • Exemplo: 5638 • Expressão oral - similar ao sistema binário. Anderson Moreira Arquitetura de Computadores 7 Sistemas de Numeração Sistema Hexadecimal (Base 16) • Possui 16 símbolos (algarismos) para representar qualquer quantidade. 0 A 1 B 2 C 3 D 4 E 5 F 6 • Uso das letras - facilidade de manuseio. • Exemplo: 5A316 • Expressão oral - similar ao sistema binário. Anderson Moreira Arquitetura de Computadores 7 8 9 Sistemas de Numeração Ao trabalhar com sistemas de numeração, em qualquer base, deve-se observar o seguinte: • O número de dígitos usado no sistema é igual à base. • O maior dígito é sempre menor que a base. • O dígito mais significativo está à esquerda, e o menos significativo à direita • Um “vai-um” de uma posição para outra tem um peso igual a uma potência da base. • Em geral se toma a base decimal como referência. Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 . . . Anderson Moreira Binário 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 . . . Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 . . . Arquitetura de Computadores Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . Sistemas de Numeração Conversão entre Sistemas de Numeração • Procedimentos básicos: (números inteiros) - divisão - polinômio - agrupamento de bits OCTAL Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Conversão entre Sistemas de Numeração • Divisão (Decimal outro sistema) – Divisão inteira (do quociente) sucessiva pela base, até que resto seja menor do que a base. – Valor na base = composição do último quociente (MSB) com restos (primeiro resto é o bit menos significativo - LSB) Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Conversão entre Sistemas de Numeração • Divisão (Decimal • Dividir o número por b (base do sistema) e os resultados consecutivas vezes. Ex.: (125)10 = Anderson Moreira outro sistema) (? )2 (538)10 = (? )16 Arquitetura de Computadores Sistemas de Numeração Conversão entre Sistemas de Numeração Notação Polinomial ou Posicional • • Válida para qualquer base numérica. LEI DE FORMAÇÃO (Notação ou Representação Polinomial): Número = an bn + an −1bn −1 + an −2bn −2 + . +. a0.b0 an = algarismo, b = base do número n = quantidade de algarismo - 1 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Conversão entre Sistemas de Numeração Ex.: a) (1111101)2 = (? )10 (1111101)2 = 1x26 + 1x25 + 1x24 + 1x23 + 1x22 + 0x21 + 1x20 = 12510 b) (21A)16 = (? )10 (21A)16 = 2x162 + 1x161 + 10x160 = 53810 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Conversão entre Sistemas de Numeração Agrupamento de Bits • Sistemas octal e hexa binário (e vice versa) • associando 3 bits ou 4 bits (quando octal ou hexadecimal, respectivamente) e vice-versa. Ex.: (1011110010100111)2 = ( ? )16 Anderson Moreira Arquitetura de Computadores (A79E)16 = ( ? )2 Sistemas de Numeração Conversão entre Sistemas de Numeração Conversão octal hexadecimal • Não é realizada diretamente - não há relação de potências entre as bases oito e dezesseis. • Semelhante à conversão entre duas bases quaisquer - base intermediária (base binária) • Conversão em duas etapas: 1 - número: base octal (hexadecimal) 2 - resultado intermediário: binária Anderson Moreira Arquitetura de Computadores binária. hexadecimal (octal). Sistemas de Numeração Conversão entre Sistemas de Numeração Ex.: a) (175)8 = ( ? )16 (175)8 = (1111101)2 = (7D)16 b) (21A)16 = (? )8 (21A)16 = (001000011010)2 = (1032)8 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Conversão entre Sistemas de Numeração Conversão de Números Fracionários • Lei de Formação ampliada (polinômio): Exemplo: (101,110)2 = ( ? )10 1 × 22 + 0 × 21 + 1 × 20 +1 × 2-1 + 1 × 2-2 + 0 × 2-3 = (5,75)10 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Conversão de Números Fracionários ♦ Decimal outro sistema • Operação inversa: multiplicar a parte fracionária pela base até que a parte fracionária do resultado seja zero. Exemplo: (8,375)10 = ( ? )2 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração • Mostre que: – 5,810 = 101,11001100... 2 (uma dízima). – 11,610 = 1011,10011001100... 2 • a vírgula foi deslocada uma casa para a direita, pois 11,6 = 2 x 5,8 . Anderson Moreira Arquitetura de Computadores Sistemas de Numeração • Uma caixa alienígena com o número 25 gravado na tampa foi entregue a um grupo de cientistas. Ao abrirem a caixa, encontraram 17 objetos. Considerando que o alienígena tem um formato humanóide, quantos dedos ele tem nas duas mãos? Anderson Moreira Arquitetura de Computadores Sistemas de Numeração • Solução: 1710 = 25b 17 = 2xb1 + 5xb0 17 = 2b + 5 b = (17-5)/2 b=6 Anderson Moreira Arquitetura de Computadores Sistemas de Numeração • Elabore um programa que realiza conversões entre sistemas de numeração, conforme descrição apresentada na figura abaixo. Anderson Moreira Arquitetura de Computadores Sistemas de Numeração Como um computador “identifica” que um número é negativo? Anderson Moreira Arquitetura de Computadores Sistemas de Numeração • A resposta a esta pergunta é que isso depende da convenção usada na representação de números. • As convenções mais usuais são as seguintes : – Representação de grandeza com sinal (sinal e magnitude) – Representação em complemento de 2 Anderson Moreira Arquitetura de Computadores Representação de Números Inteiros (Complemento de 2) Representação de números inteiros positivos – igual à representação usual já apresentada Representação de números inteiros negativos – mantém-se os bits menos significativos da direita para a esquerda até à ocorrência do primeiro bit igual a 1 (inclusive), sendo os bits restantes complementados de 1. – Esta operação equivale a: complemento de 1 + 1. Exemplo : (8 bits) Exemplo : (8 bits) 000011002 = 1210 001010012 = 4110 11110100c2 = -1210 11010111c2 = - 4110 Anderson Moreira Arquitetura de Computadores Representação de Números Inteiros (Complemento de 2) ♦ Exemplo: Números inteiros codificados em binário de 8 bits em um sistema que utiliza complemento de 2: (-128, -127, ..., -2. -1, 0, +1, +2,..., +127) {10000000, 10000001, ..., 11111110, 11111111, 00000000, 00000001, 00000010, ..., 01111111} ♦ Bit mais significativo informação de sinal (0 = positivo e 1 = negativo) Anderson Moreira Arquitetura de Computadores Representação de Números Inteiros (Complemento de 2) Requer um só circuito (somador) para fazer a adição e a subtração. Há apenas uma representação para o valor 0 (disponibilidade para mais uma representação) - mais um número negativo pode ser representado (para 8 bits, pode-se representar o número –12810 ⇒ 100000002) . A quantidade de números positivos é diferente da quantidade de números negativos. Anderson Moreira Arquitetura de Computadores Representação de Números Inteiros (Complemento de 2) Exemplo: Escreva os números decimais abaixo na representação em complemento de 2 (utilizando 8 bits, se existir representação). a) -1 b) –20 c) –127 d) –128 Anderson Moreira Arquitetura de Computadores Representação de Números Reais • Até meados dos anos 1980, cada fabricante de computador tinha seu próprio formato para representar números em ponto flutuante. • Solução: criação do Padrão 754 (IEEE 1985). • O Padrão IEEE 754 procurou uniformizar a maneira como as diferentes máquinas representam os números em ponto flutuante, bem como devem operá-los. • O padrão IEEE 754 para ponto (vírgula) flutuante é a representação mais comum para números reais em computadores de hoje, incluindo PC's compatíveis com Intel, Macintosh, e a maioria das plataformas Unix/Linux. Anderson Moreira Arquitetura de Computadores O Padrão IEEE 754 para Números em Ponto Flutuante O padrão IEEE 754 define três formatos: • Precisão simples (32 bits) • Precisão dupla (64 bits) • Precisão estendida (80 bits) • Os formatos de precisão simples e precisão dupla usam a base 2 para o significando e a notação em excesso para o expoente. Anderson Moreira Arquitetura de Computadores O Padrão IEEE 754 para Números em Ponto Flutuante Bits 1 8 23 Significando Sinal Expoente Precisão simples Bits 1 11 52 Significando Sinal Anderson Moreira Expoente Precisão dupla Arquitetura de Computadores O Padrão IEEE 754 para Números em Ponto Flutuante • • • • Precisão Sinal Expoente(+/-) Significando Simples (32bits) 1 [bit31] 8 [bits30-23] 23 [bits22-00] Dupla (64 bits) 1 [bit63] 11 [bits62-52] 52 [bits51-00] Sinal: 0 = + e 1 = Combinações: Sinal + Expoente + Significando Notação em excesso de 127 (bit de polarização): precisão simples. Notação em excesso de 1023 (bit de polarização): precisão dupla. Anderson Moreira Arquitetura de Computadores Grandes números Factor multiplicador :1024 Símbolo Lê-se Equivale Valor a binário Valor decimal Valor decimal aproximado K Kilo 1024 210 1 024 103 M Mega 1024 K 220 1 048 576 106 G Giga 1024 M 230 1 073 741 824 109 T Tera 1024 G 240 1 099 511 627 776 1012 • Utilizam-se mais frequentemente para expressar a capacidade de memória de um computador (em bytes). Exemplos: 512 MB, 40 GB, 2 TB. Anderson Moreira Arquitetura de Computadores José Delgado © Cálculo de potências de 2 Potência 2 Decomposição Ou seja… Resultado 220 216 * 24 64K * 16 1M 220 210 * 210 1K * 1K 1M 212 210 * 22 1K * 4 4K 214 216 / 22 64K / 4 16K 227 220 * 27 1M * 128 128M 230 220 * 210 1M * 1K 1G Anderson Moreira Arquitetura de Computadores José Delgado © Essencial saber! • O computador é a verdadeira “caixa que mudou o mundo”, mas não por mérito próprio; • Computador executa cegamente as instruções que lhe dão sem saber o que está fazendo; • A inteligência aparente de alguns programas é apenas do programador; • O código de máquina consiste numa seqüência de instruções básicas que o computador sabe executar diretamente e que refletem diretamente os recursos internos que o processador dispõe; • Os computadores atuais atuam utilizando a base binária com apenas dois símbolos: 1 e 0. Não entendem a linguagem natural; • É preciso converter nossas idéias em código de máquina. Anderson Moreira Arquitetura de Computadores Exercícios Considere o número A3F9 C05BH. a) Quantos bits são necessários para o representar? b) Em complemento para 2 com 32 bits, é positivo ou negativo? c) Determine o seu complemento para 2 (apresente-o em hexadecimal). Anderson Moreira Arquitetura de Computadores Exercícios 1. Que gama de números em decimal é possível representar em binário com 12 bits: a) sem sinal b) em complemento para 2? Justifique. 2. Indique a que número decimal corresponde o número binário 1100111001B, supondo que este: a) não tem sinal b) está em complemento para 2. 3. Considere o número decimal –20. Represente-o: a) em complemento para 2 com 8 bits (binário) b) em hexadecimal com 2, 4 e 8 dígitos. Anderson Moreira Arquitetura de Computadores Exercícios 4. Qual o maior e o menor número que consegue representar com 8 dígitos em hexadecimal? a) sem sinal b) em complemento para 2? 5. Quantos bits no total têm 12 Kbytes (resposta em decimal) ? 6. Qual o valor do expoente da potência de 2 equivalente a K, M, G e T? 7. Utilizando estes factores de escala, indique o valor das seguintes potências de 2 (exemplo: 214 = 16 K): 226, 219, 238, 245. Anderson Moreira Arquitetura de Computadores Dúvidas Anderson Moreira Arquitetura de Computadores 57