Introdução à Computação: Sistemas de Numeração Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória, ES Brazil 1
História da Computação Revisão Aula Passada História da Computação; 2
Sistemas de Numeração Introdução Sistemas de Numeração: O número é um conceito abstrato que representa a ideia de quantidade; portanto, é um conceito fundamental para a área de computação; Um sistema de numeração é o conjunto de símbolos utilizados para representar quantidades e as regras que definem a forma de representação; 3
Sistemas de Numeração Introdução Sistemas de Numeração: Um sistema de numeração é determinado fundamentalmente pela Base, que indica a quantidade de símbolos e o valor de cada símbolo; Decimal (base 10): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9; Binário (base 2): 0, 1; Octal (base 8): 0, 1, 2, 3, 4, 5, 6, 7, 8; Hexadecimal (base 16): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F; Base B genérica: 0 a B 1. 4
Sistemas de Numeração Introdução Sistemas de Numeração: Em sistemas digitais, o sistema de numeração binário é o mais importante; Como usa apenas os símbolos 0 e 1, é mais fácil de ser representado por circuitos eletrônicos (presença ou não de tensão, chave aberta ou fechada, etc.); Os símbolos binários são denominados de Bits (Binary Digit); O conjunto de 8 bits é denominado de Byte; Palavras (Words) são grupos de Bytes; 5
Sistemas de Numeração Introdução Sistemas de Numeração: Para a representação de números binários grandes utilizamos os sistemas de numeração octal e hexadecimal: 1100 0000 0000 00002 = 1400008 = A00016 A base 10 é importante por ser a que manipulamos cotidianamente; A base 2 é útil por conta dos circuitos lógicos, porém documentar números grandes apenas com 0 e 1s é complicado; As bases 8 (octal) e 16 (hexadecimal) compactam siginificativamente a representação em binários. 6
Sistemas de Numeração Notação Sistemas de Numeração (Notação Proposicional): Em um sistema numérico posicional de base r, um número D tem seu valor dado por: Onde: r : base do sistema; p : número de dígitos à esquerda da vírgula; n : número de dígitos à direita da vírgula. O valor de cada símbolo é determinado de acordo com a sua posição no número. 7
Sistemas de Numeração Notação Sistemas de Numeração (Notação Proposicional): 2914,193 2 x 10³ + 9 x 10² + 1 x 10¹ + 1 x 10 + 1 x 10 ¹ + 9 x 10 ² + 3 x 10 ³ 8
Sistemas de Numeração Notação Sistemas de Numeração (Notação Proposicional): Generalização para qualquer base: Seja b a base de representação de um número e A, B, C, D, E, os símbolos dos algarismos deste sistema; Então, por exemplo, o número EDCB na base b, escrito convencionalmente como. EDCBb Representa a grandeza E x b³ + D x b² + C x b¹ + B x b 9
Sistemas de Numeração Outras Bases Representação em outras bases: Algarismos Indo-arábicos, e se necessário letras ou outros símbolos, até (base 1) ; Base diferentes símbolos usados repetidamente para contar; Ex. 1: Base 5; 0 1 2 3 4 V = ABC = A x b² + B x b¹ + C x b 231 = 2 x 5² + 3 x 5¹ + 1 x 5 = 6610 10
Sistemas de Numeração Outras Bases Soma, subtração, multiplicação e divisão em outras bases: Segue as mesmas regras: Mantém-se o elemento neutro zero; Mantém-se a não existência de divisão por zero; Estão mantidas as regras de transitividade e as propriedades intrínsecas dos valores representados pelos símbolos. 11
Sistemas de Numeração Sistema Binário Sistema de Numeração Binário: O sistema binário, como sugere o nome, tem dois algarismos aos quais damos geralmente os símbolos 0 e 1; Eles correspondem a qualquer conjunto dual, como: não e sim; falso e verdadeiro; desligado e ligado; negativo e positivo, etc.; Nos circuitos lógicos, 0 e 1 representam respectivamente níveis de tensão baixa e alto ou estados de saturação e corte de transistores; Daí, uma outra designação comum: L e H ( Low and High levels ), baixo e alto níveis de tensão. 12
Sistemas de Numeração Sistema Binário Sistema de Numeração Binário: MSB: most significant bit (bit mais significativo); LSB: least significant bit (bit menos significativo). 13
Sistemas de Numeração Sistema Binário Sistema de Numeração Decimal versus Binário: 14
Sistemas de Numeração Sistema Octal Sistema de Numeração Octal: Sistema de base 8; Contém 8 algarismos: 0, 1, 2, 3, 4, 5, 6 e 7; É utilizado por ser um sistema que tem relação direta com o sistema binário; Veremos esta relação quando tratarmos de transformação entre bases; Os valores posicionais são: 15
Sistemas de Numeração Sist. Hexadecimal Sistema de Numeração Hexadecimal: Do hexa (6) e deci (10), sistema numérico de base 16; Possui 16 símbolos distintos em sua contagem; Além dos 10 dígitos (0 a 9), utiliza as letras A, B, C, D, E e F que fazem o papel das grandezas 10, 11, 12, 13, 14 e 15 respectivamente; Usamos as letras maiúsculas pela necessidade de termos que representar cada uma destas grandezas com um único algarismo; O sistema Hexadecimal é um sistema muito utilizado em computadores. 16
Sistemas de Numeração Comparativo Representação comparativa: 17
Sistemas de Numeração Conversão Conversão de Binário para Decimal: Devemos considerar os valores posicionais na base 2 e fazer a soma das potências dos bits em 1 ; Ex. 2: 110112 = 2710 18
Sistemas de Numeração Conversão Conversão de Octal para Decimal: Assim como fizemos no sistema binário também utilizamos os valores posicionais; Ex. 2: 3728 = 25010 Ex. 3: 24,68 = 20,7510 19
Sistemas de Numeração Conversão Conversão de Hexadecimal para Decimal: Assim como fizemos no sistema binário também utilizamos os valores posicionais; Ex. 4: 35616 = 85410 Ex. 5: 2AF16 = 68710 20
Sistemas de Numeração Conversão Conversão de base (r) qualquer para Decimal: Para converter de binário, octal ou hexadecimal para decimal, use o método da soma dos pesos de cada dígito (valor posicional). 21
Sistemas de Numeração Conversão Conversão de Decimal para Binário: Há duas formas de converter o número decimal inteiro para o equivalente binário: A 1ª é fazer a soma das potências de 2, onde os bits 0 e 1 são colocados nos lugares apropriados; 22
Sistemas de Numeração Conversão Conversão de Decimal para Binário: Há duas formas de converter o número decimal inteiro para o equivalente binário: A 2ª forma (mais mecânica) é utilizar as divisões sucessivas por 2, e a escrita de modo inverso dos restos de cada divisão até que o quociente 0 seja obtido. 23
Sistemas de Numeração Conversão Conversão de Decimal para Octal: Também utiliza-se o método das divisões sucessivas, só que agora a base é 8. 26610 = 4128 24
Sistemas de Numeração Conversão Conversão de Decimal para Hexadecimal: Da mesma forma utiliza-se o processo de divisões sucessivas; 25
Sistemas de Numeração Conversão Conversão de Decimal para outras bases: Tomemos o seguinte exemplo: 91,610 -> x2; A parte inteira do número é convertida conforme o processo já demonstrado e obtemos assim o número é 1011011; A parte fracionária 0,6 é convertida da seguinte maneira: Multiplica-se a parte fracionária pela base b (neste caso 2) e separa-se a parte inteira do produto; O resultado obtido da subtração da parte inteira do produto passa a ser o próximo multiplicando; Faz-se sucessivamente esta operação até que consiga uma precisão satisfatória; Lê-se os algarismos separados de cima para baixo. 26
Sistemas de Numeração Conversão Conversão de Decimal para outras bases: Ex. 6: 91,610 -> x2; Parte inteira: Parte fracionária: 91 = 1011011; 27
Sistemas de Numeração Conversão Conversão de Decimal para outras bases: Lendo de cima para baixo teremos 10011, então 0,610 = 100112. Fazendo uma verificação, podemos ver que 0,100112 é igual a: Note que houve uma diferença de precisão na representação da grandeza nas diferentes bases. 28
Sistemas de Numeração Conversão Conversão de Decimal para outras bases: Para a parte inteira: Divisões sucessivas por (b); Para a parte fracionária: Multiplicações sucessivas por (b). 29
Sistemas de Numeração Conversão Conversão de Octal para Binário: A principal vantagem do sistema octal é a transcrição de cada dígito octal para binário, sem a necessidade de cálculos: 30
Sistemas de Numeração Conversão Conversão de Hexadecimal para Binário: Assim como na conversão octal para binário, utilizamos a substituição de cada dígito hexadecimal para seu correspondente binário: 31
Sistemas de Numeração Conversão Conversão de Binário para Hexadecimal: Análogo à conversão de Binário para Octal, só que agrupando 4 dígitos ao invés de 3. 32
Sistemas de Numeração Conversão Conversão de Hexadecimal para Octal e Octal para Hexadecimal : Converter para Binário e depois para Octal ou Hexadecimal. 33
Sistemas de Numeração Conversão Conversão de Binário para Octal: A conversão de números binários inteiros para octais inteiros se dá substituindo o conjunto de cada 3 binários pelo octal equivalente; Esta divisão deverá ser feita da direita (LSB) para esquerda (MSB); se faltar bits à esquerda preencher com zeros. 34
Sistemas de Numeração Conversão Conversão: Por que não convertemos cada dígito diretamente de Decimal para Binário como no exemplo abaixo? 87410 = [1000][0111][0010] Porque 10 não é potência de 2 35
Sistemas de Numeração Conversão Resumo das Conversões: De binário, octal ou hexadecimal para decimal, use o método da soma dos pesos de cada dígito (valor posicional); De decimal para binário, octal ou hexadecimal, utilize o método das divisões/multiplicações sucessivas; De binário para octal ou hexadecimal, agrupe os bits da direita para esquerda e converta cada grupo; De octal ou hexadecimal para binário converta cada dígito em 3 (octal) ou 4 (hexadecimal) bits equivalentes; De octal para hexadecimal ou (vice-versa) utilize a conversão para binário, daí então faça a conversão desejada. 36
Sistemas de Numeração Paralelo Grandeza versus Representação Temos vinte e cinco computadores no laboratório. Existe uma diferença entre a grandeza (a quantidade de objetos) e uma possível representação da mesma; Podemos representar tal grandeza em qualquer um dos sistemas vistos: Decimal: 3510; Binário: 100112; Octal: 438; Hexadecimal: 2316. 37
Sistemas de Numeração Paralelo Formas de Representação: Notar que os sistemas Octal e Hexadecimal podem ser usados como formas compactadas de representar um número em Binário; Octal agrupando 3 dígitos binários em um dígito Octal; Hexadecimal agrupando 4 dígitos binários em um dígito Hexadecimal. 38
Sistemas de Numeração Caracteres Representação de Caracteres: Um CCS (Conjunto de Caracteres Codificados - Coded Character Set ou Character Encoding ) é definido para ser um mapeamento de um conjunto abstrato de caracteres para um conjunto de valores inteiros não negativos; Estes CCS são regulamentados por normas ISO; 39
Sistemas de Numeração Normas Normas para representação e mapeamento de caracteres codificados: 40
Sistemas de Numeração Caracteres Representação de Caracteres: Um CCS (Conjunto de Caracteres Codificados - Coded Character Set ou Character Encoding ) é definido para ser um mapeamento de um conjunto abstrato de caracteres para um conjunto de valores inteiros não negativos; Esta codificação pode mapeada de duas formas diferentes, usando CEF (Formulário de Codificação de Caracteres - Character Encoding Form ): Codificação com formulários de tamanho fixo de bits; Codificação com formulários de tamanho variável de bits. 41
Sistemas de Numeração Caracteres Exemplos de codificação com tamanho fixo e variável: 42
Sistemas de Numeração Caracteres Representação de Caracteres: Os CES ( Character Encoding Scheme Esquemas de Codificação de Caracteres), são transformações reversíveis de unidades de código para sequencias de bytes que podem ocorrer de três maneiras diferentes: Simples, mapeia cada unidade de código para uma sequencia de bytes em ordem; Complexas, usa duas ou mais CESs simples e mais um mecanismo para rolar entre elas; Comprimidas, mapeia uma sequência de código para uma sequência de bytes enquanto ao mesmo tempo minimiza o tamanho da sequência. 43
Sistemas de Numeração Caracteres Representação pela Tabela ASCII: Código ASCII do inglês, American Standard Code for Information Interchange (Código Padrão Americano para o Intercâmbio de Informação); É um código binário composto de bytes (cadeias de 8 bits), sendo um byte para cada símbolo; Cada código binário CEF fixo, com 8 bits, sendo: 7 bits para o propósito de codificação; 1 bit de paridade (detecção de erro). Codifica um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, sinais de pontuação e sinais matemáticos); 33 sinais de controle. 44
Sistemas de Numeração Caracteres Faixa de Representação do Código ASCII: O bit mais significativo era usado para paridade; Os restante dos 7 bits eram usados como magnitude; P110 0001 Código ASCII da letra a Com 7 bits de magnitude era possível representar 128 símbolos diferentes: 45
Sistemas de Numeração Caracteres Tabela ASCII de magnitude com 7 bits: 46
Sistemas de Numeração Caracteres Faixa de Representação do Código ASCII: Posteriormente o código foi ampliado para permitir representar um conjunto maior de símbolos, na medida que outros idiomas além do inglês passaram a usar esta codificação; A magnitude passou a usar 8 bits o que permitiu a representação de 256 caracteres diferentes: 47
Sistemas de Numeração Caracteres Extensão da tabela ASCII para magnitude com 8 bits: 48
Sistemas de Numeração Caracteres Representação em UNICODE: Na prática 256 caracteres diferentes não são suficientes para todos os idiomas; A partir de um consórcio internacional foi definido um padrão para a codificação que fosse aplicável a todos os idiomas: UNICODE Standard. Cada caractere é representado por 8, 16 ou 32 bits: Os primeiros 256 caracteres possuem a mesma representação usada na tabela ASCII; Na verdade a representação está baseada em glyphs (glifos), onde diferentes glifos podem representar um mesmo caractere em idiomas diferentes. 49
Sistemas de Numeração Caracteres Faixa de Representação do UNICODE Standard: Primeiramente a magnitude passou a usar 16 bits o que permitiu a representação de 65536 combinações diferentes: Atualmente magnitude pode usar até 32 bits o que permite a representação de 4294967296 combinações diferentes: 50
Sistemas de Numeração Caracteres Faixa de Representação do UNICODE Standard: Representação da letra a com glifos diferentes: Os glifos não necessáriamente representam caracteres individuais, podendo representar um símbolo mais complexo, um Ideopraph. 51
Sistemas de Numeração Caracteres Faixa de Representação do UNICODE Standard: Essa distinção entre glifos e caracteres é importante para idiomas como Árabe, Hebreu, idiomas orientais e idiomas com acentuação; Os glifos estão agrupados segundo subconjuntos regulamentados pelo conjunto das normas ISO/IEC 10646:2014; 52
Sistemas de Numeração Caracteres Representação em UNICODE: O UNICODE pode trabalhar com CEF (formulários de codificação de caracteres) fixo ou variável; E possui 7 CESs (esquemas de codificação de caracteres): 53
Sistemas de Numeração Próxima Aula Sistemas de Numeração: Para a próxima aula: Verifique a publicação da lista de exercícios e a data para entrega. Continua na próxima aula! Até breve. 54
http://nemo.inf.ufes.br/ 55