SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Disciplina: Introdução à Computação Profa.: Nilzete Olímpio Álvares Conceitos Básicos 3. Sistemas de Numeração A idéia de “contar” foi a motivação para o surgimento dos sistemas de numeração. 3.1. Sistema de numeração decimal - É o sistema de numeração que usamos em nosso dia a dia. Seja o número 1984. O primeiro algarismo (1) representa um milhar, o segundo (9) representa centenas, o terceiro (8) oito dezenas e o quarto (4) quatro unidades: 1967 = 1000 + 900 + 60 + 7 = 1 x 1000 + 9 x 100 + 6 x 10 + 7 x 1 = 1 x 103 + 9 x 102 + 6 x 101 + 7 x 100 - Esse sistema de numeração é dito ser um sistema de numeração decimal, ou de base 10. Os algarismos que compõem o sistema decimal são 0, 1, 2,3,4,5,6,7,8, 9 Notação. Representa-se o número 1967, tomado em base 10, por: ( 1967 )10 Os números podem ser representados de acordo com outros sistemas de numeração? 3.2 - Sistemas de Numeração importante para a computação Sistema Decimal Binário Octal Hexadecimal Base 10 2 8 16 Algarismos 0, 1, 2,3,4,5,6,7,8, 9 0, 1 0,1,2,3,4,5,6,7 0, 1,2,3,4,5,6,7,8, 9, A, B, C, D, E, F Obs: Não faz parte da emenda da disciplina abordar representação ou conversão de números decimais, apenas inteiros. 3.2.1 - Sistema de numeração Binário. - Base 2 Dígitos 0, 1 Conversão de binário para decimal - Multiplique o numero binário vezes a base 2 elevado a unidade por zero, dezena por 1, centena por 2, milhar por 3, etc. 1 - Tomemos ( 11011 )2. Esse número pode ser decomposto da seguinte maneira: 43210 = 1 x 20 + 1 x 21 + 0 x 22 + 1 x 23 + 1 x 24 = 1 + 2 + 0 + 8 + 16 = 27 = ( 27 )10 Ex1 : ( 11011 )2 210 = 1 x 20 + 1 x 21 + 0 x 22 = 1 + 2 + 0 = 3 = ( 3 )10 Ex2: ( 011 )2 3210 = 1 x 20 + 0 x 21 + 0 x 22 + 1 x 23 = 1 + 0 + 0 + 8 = 9 = (9)10 Ex3 : ( 1001 )2 Conversão de decimal para binário - Dividindo o número na base 10 por 2 (pela base 2), tomando os restos da divisão, até não ser mais possível a divisão por 2. 27 1 7 1 2 3 1 ( 7 )10 = ( 0111 )2 2 1 1 2 0 2 13 2 1 6 2 0 3 2 1 1 2 1 0 ( 27 )10 = ( 011011 )2 Obs: Em nenhum sistema estudado neste curso zero à esquerda representa informação relevante, portanto 0111 é igual a 111. 107 2 07 53 1 13 1 2 (107)10 = (01101011)2 26 2 6 0 13 2 1 6 2 0 3 2 1 1 2 1 0 3.2.2 - Sistema de numeração Hexadecimal 2 O sistema de numeração hexadecimal é composto dos dígitos decimais (0,1,2,3,4,5,6,7,8,9) acrescidos das letras A,B,C, D, E, F. O sistema hexadecimal corresponde a 24= 16, ou seja, quatro dígitos binários descrevem um dígito decimal. - Base 16 Dígito 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Conversão de hexadecimal para decimal - Multiplica-se o unidade hexa pela base hexa(16) elavado a zero + a dezena hexa pela base hexa(16) elevado a 1 + a centena hexa pela base hexa(16) elevado a 2 e assim por diante. - Tomemos ( 10 )16. Esse número pode ser decomposto da seguinte maneira: 10 (10 )16 = 0 x 160 + 1 x 161 = 0 + 16 = 16 = ( 16 )10 43210 ( 10027 )16 = 7 x 160 + 2 x 161 + 0 x 162 + 0 x 163 + 1 x 164 = 7 + 32 + 0 + 0 + 65536 = 65575 = ( 65575)10 Conversão de decimal para hexadecimal Como é feita a conversão da base 10 para base 16? Faremos a conversão do seguinte modo, pega-se o número na base 10 e divide base hexadecimal (16), pega-se o resto da divisão da mesma forma da conversão de decimal para binário. Exemplo : 23 916 16 16 7 1 16 116 157 0 16 4 9 3 3 ( 23 )10 = ( 017 )16 16 16 16 0 1 1 ( 916 )10 = ( 0394 )16 16 0 ( 16 )10 = ( 010 )16 0 3.2.3 - Sistema de numeração Octal - Base 8 Dígito 0, 1, 2, 3,4, 5, 6, 7 Para auxiliar a conversão entre as três bases, faremos uma tabela que pegue todos os algarismos (dígitos) básicos, da maior base, no caso a hexadecimal com 16 dígitos. Explicações detalhadas de com usar e montar a tabela foram passadas em sala de aula. É muito importante saber construir esta tabela. 3 Binário 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 Conversão Binário para octal - Dividimos os dígito binário da direita para a esquerda em grupo de três digitos e fazemos a conversão octal de cada grupo. Exemplo 01 : (01111)2 = ( )8. 111 corresponde a 7 (unidade octal) 001 corresponde a 1 (dezena octal), assim, (01111)2 = ( 17)8. Exemplo 02 : (1010111)2 = ( )8. 111 corresponde a 7 (unidade octal) 010 corresponde a 2 (dezena octal) 001 corresponde a 1 (centena octal) (1010111)2 = ( 127)8. Conversão Octal para binário - Separamos cada dígito octal da direita (unidade octal) para a esquerda e convertemos individualmente cada número em octal em três números binário. Exemplo: Ex. 03: ( 17)8 = ( )2 7 unidades octal correspondem a 111 em binário. 1 dezena octal corresponde a 001 ou 1 em binário, assim, ( 17)8 = (1111)2 Ex. 04: ( 1002)8 = ( )2 2 unidade octal correspondem a 001 em binário. 0 dezena octal corresponde a 000 em binário. 0 centena octal corresponde a 000 em binário. 4 1 unidade de milhar em octal corresponde a 001 em binário, assim, ( 1002)8 = (001000000001)2 = (1000000001)2 3.2.4 – Mais conversões Conversão binário para hexadecimal - Separamos o número binário da direita para a esquerda em grupos de 4 dígitos. Substituímos cada grupo pelo dígito hexadecimal correspondente. Exemplo 4: ( 1000 ( 8 0111 0100 7 0010 4 )2 2 )16 Exemplo 5 : ( 0101 0111 )2 = ( 5 7 )16 Exemplo 6 : (0110000100011)2 para ( )16 (0000 1100 0010 0011 )2 = (0C23)16 = (C23)16 Não se esqueça que zero à esquerda não conta em nenhum sistema numérico, portanto 0C23 é igual a C23. Conversão Hexadecimal para Binário - Quebramos cada dígito hexadecimal da direita (unidade hexadecimal) para a esquerda e convertemos individualmente cada número em hexadecimal em quatro números binário. Exemplos: ( 9 D 8 F )16 = ( 1001 1101 1000 1111 )2 (10AF0)16 = ( 0001 0000 1010 1111 0000 )2 = ( 10000101011110000 )2 - 3.3. - 3.4 – Maneiras de codificar bits, byte e palavras. As maneiras de implementação de bit, byte e palavra mais relevante para a ciência da computação são : BCD, ASCII, EBCDIC. 3.5.1 - Codificação EBCDIC ( Extended Binary Coded with Decimal Interchage Code ) - 1 byte: 8 bits 5 - 1 palavra: 6 bytes - Em cada byte, o número de informações que podem ser guardadas: 28 = 256 Entre essas informações: - 10 dígitos 26 letras do alfabeto Outros caracteres, como *, +, -, etc Exemplo. G – O – L – A – 3 – = – 1100 0111 1101 0110 1101 0011 1100 0001 1111 0011 0111 1110 Byte G 1100 0111 Palavra de Memória Byte O 1101 0110 Byte L 1101 0011 Byte A 1100 0001 3.5.2 - ASCII A tabela ASCII (American Standard Coded for Information Interchange). É muito importante pois virou padrão de fato e é o tipo de codificação usada em Fortran e pelo Sistema Operacional Windows, Linux, etc. - byte: 8 bits palavra: 6 bytes 3.5.3 - BCD - O sistema BCD (Binary Coded Decimal) byte: 6 bits palavra: 8 bytes 6