GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Execução de Algoritmos: Sistema Binário e Hexadecimal Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/icc UFU/FACOM/BCC Sistemas de Numeração Sistema Decimal Alfabeto com 10 símbolos Base 10. Alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Um número é uma cadeia de símbolos O que representa o número 201 na base 10 (20110)? – Ordem dos símbolos 2, 0 e 1 é importante 20110 = 2 * 102 + 0*101 + 1 * 100 = 200 + 0+ 1 O valor representado por cada símbolo depende da posição do símbolo Sistema Binário Proposto por Leibniz (sec. XVII) Alfabeto com dois símbolos {0, 1} Números são cadeias de zeros e uns Exemplos: 102, 11012, 12, 02 Significado depende do contexto Entender o sistema binário é importante para programar corretamente Conversão Binário/Decimal O que representa o número 101 na base 2 (1012) Ordem dos símbolos 1, 0 e 1 é importante Vamos convertê-lo para a base 10 1012 = 1 * 22 + 0*21 + 1 * 20 = 610 Outro Exemplo 11012 11012 = 1*23 + 1*22 + 0*21+ 1*20 = 1310 Algoritmo Conversão Decimal/Binário Algoritmo: LEIA n // um número inteiro no Sistema Decimal FAÇA { resto = n % 2 // resto da divisão de n por 2: é 0 ou 1 imprima resto n=n/2 // considere divisão inteira } ENQUANTO n > 0 IMPRIMA ”Leia os bits da direita para a esquerda” Exemplo: (1310 ): 13/2 = 6 (resto 1); 6/2 = 3 (resto 0); 3/2 = 1 (resto 1); 1/2 = 0 (resto 1) ==> (11012) Exemplo de Conversão Decimal/Binário Representando números inteiros usando Sinal-Magnitude Reserva-se o bit + significativo para representar o sinal: 0 – positivo; 1- negativo os demais bits representam o número Binário Dec Exemplos: 0102 = 210 ; 1102 = -210 1 0 1 -1 OBS: - quantidade de bits deve ser fixa - o zero tem duas representações, a sabe: 0002 e 1002 0 0 1 1 1 1 1 -3 Representando números inteiros usando Complemento Dois O bit + significativo representa o sinal 0 – positivo; 1 – negativo; mas todos os bits compõem o nro, que usa um nro fixo de bits. - números positivos idênticos ao Sistema Binário - números negativos: * Inicia com uma cadeia de 1s. Ex: 1111C2=-110 * Decrementa-se em binário. Ex: 1110C2=-210, 1101C2=-310 - conversão para decimal conforme figura a seguir, obtida de [1]: Interpretando o números negativo 1010 em Complemento Dois Tabela números inteiros de 3 e 4 bits em Complemento Dois Comparação Sinal-Magnitude C2 C2 é mais usado atualmente Representa um nro a mais por nro de bits Possui apenas uma representação para o zero Os circuitos lógicos são mais simples Limites C2 Bits Menor Maior 8 -128 127 16 -32768 32767 32 -2147483648 2147483647 64 -9223372036854775808 9223372036854775 807 Sistema Hexadecimal Alfabeto com 16 caracteres (tabela) Facilita expressão de números binários Cada símbolo corresponde a 4 bits Surgiu na IBM HEXADECIMAL BINARIO DECIMAL 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 A 1010 10 B 1011 11 C 1100 12 D 1101 13 Conversão de base HEXADECIMAL/DECIMAL/HEXADECIMAL – Análogo a BIN/DEC/BIN substituindo 2 por 16 HEX/DEC: A2B16 = 10 * 162 + 2 * 161 +11 * 160 = 269310 DEC/HEX: ALGORITMO (pg 4) com 16 em subst 2 HEXADECIMAL/BINÁRIO/HEXADECIMAL HEX/BIN • • cada algarismo = 4 bits A2B16 = 1010 0010 1011 = 1010001010112 BIN/HEX • • Cada 4 bits um símbolo (da direita para esquerda) 1010112 : 10 1011 : 2 B = 2B16 Operações Lógicas SOMA OUTRAS OPERAÇÕES SUBTRAÇÃO Basta fazer a soma com o respectivo número negativo Exemplos (em complemento 2): 0111C2 – 0011C2 = 0111C2 + 1101C2 = 0100C2 0011C2 – 0100C2 = 0011C2 + 1100C2 = 1111C2 OBS: - outras operações são definidas a partir da soma e subtração - números Hexadecimal negativo também usa o último bit para representar o sinal (não vamos abordar aqui). TÓPICOS ADICIONAIS Sistema qualquer: onde b é a base an são coeficientes de 0 a b-1. Se b=8 temos o Sistema Octal (Operações análogas às outras bases. Exemplo: Octal/Bin use 3 bits por dígito). Números após a vírgula são interpretados de forma análoga ao Sistema Decimal, com potências negativas Códigos baseados em padrões de cadeias de bits são usados para representar informações, por exemplo: – ASCII: 7 bits para representar alfabeto inglês, incluindo letras maiúsculas, minúsculas, dígitos, pontuação e informações de controle. – UNICODE: padrões de 16 bits para linguagens como chinês, hebraico, japonês, – MAPA DE BITS para representação de imagens, etc.... Bibliografia [1] BROOKSHEAR, J. Glenn. Ciência da computação: uma visão abrangente, ,tradução da 11a ed [por] Eduardo K Pivete, Porto Alegre, Bookman, 2013. [2] FEDELI, Ricardo Daniel; POLLONI, Enrico Giulio Franco; PERES, Fernando Eduardo. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning, 2010. [3] Autran Macedo, Maria Adriana, Renato Pimentel e Ilmério Silva, http://www.facom.ufu.br Material de Apoio Capítulo 1, 2 de [1], incluindo material na Web Capítulo 3 de [2], incluindo exercícios FIM Execução de Algoritmos: Sistema Binário e Hexadecimal