UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 1 Conceitos necessários Prof. Leonardo Augusto Casillo
Sistema de numeração: conjunto de regras que nos permite escrever e ler qualquer número, utilizando para isto símbolos básicos. Os símbolos que utilizamos (os algarismos de 0 a 9) são apenas convenções para serem utilizadas em sistemas numéricos, sendo que podem ser utilizados letras, símbolos geométricos ou qualquer outra simbologia. Base de um sistema: quantidade de símbolos necessários para representar números em um sistema de numeração. Maior símbolo (algarismo) da base = base - 1 Notação Posicional: Dado um número, seu valor é calculado de acordo com a base do sistema e a posição que cada algarismo ocupa com sua potência correspondente. 2
Um número no sistema de base decimal pode ser decomposto em uma soma de potências de base 10. E assim para cada sistema de numeração, com sua base correspondente. Ex.: 1998 / 9198 A posição dos algarismos determina a diferença de valor. Processo de Soma de Potências (de 10) x1000 x100 x10 x1 1000+900+90+8 1 9 9 8 1998 x10 3 x10 2 x10 1 X10 0 9000+100+90+8 9 1 9 8 9198 3
Generalizando, um número N é expresso da seguinte forma: N = d n-1 x b n-1 + d n-2 x b n-2 +... + d 1 x b 1 + d 0 x b 0 Em que: d -> cada algarismo do número n 1, n 2, etc -> indicam a posição de cada número b -> base de numeração n -> número de dígitos n Matematicamente: 1 N d B i i i 0 4
Importante: Qualquer sistema de numeração, ao ser descrito na equação de numeração posicional, resultará no valor correspondente ao sistema decimal (ou seja, é uma equação de conversão de qualquer base para a base 10). Ex: 412 5 N = 4 x 5 2 + 1 x 5 1 + 2 x 5 0 N = 4 x 25 + 1 x 5 + 2 x 1 N = 100 + 5 + 2 N = 107 10 5
Decimal Binário Octal Hexadecimal 0 0 0 0 1 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 9 9 A B C D E F 6
Palavras binárias Designação Nibble Byte Word Doubleword Quadword Paragraph Quantidade 4 bits 8 bits 2 bytes 4 bytes 8 bytes 16 bytes 7
Grandezas binárias Grandeza Kilobyte Megabyte Gigabyte Terabyte Petabyte Exabyte Zettabyte Yottabyte Número de bytes 2 10 ou 1024 bytes 2 20, 1024 KB ou 1048576 bytes 2 30, 1024 MB ou 1073741824 bytes 2 40, 1024 GB, ou 1099511627776 bytes 2 50, 1024 TB, ou 1125899906842624 bytes 2 60 ou 1152921504606846976 bytes 2 70 ou 1180591620717411303424 bytes 2 80 ou 1208925819614629174706176 bytes 8
Para converter um número de base 2 para outro de base 2 n, basta dividir o número binário, da direita para a esquerda, em grupos de n bits e encontrar o símbolo equivalente. O inverso é realizado substituindo o símbolo pelo grupo de n bits correspondentes. Exemplos: 111010111 2 = 111-010-111 = 727 8 111010111 2 = 0001-1101-0111X = 1(13)7 = 1D7 16 237 8 = 010, 011, 111 = 10011111X 2 F5A 16 = 1111, 0101, 1010 = 111101011010 2 = 3930 10 9
A conversão de números em Sistema Decimal para o Sistema Binário pode ser feita através do mecanismo de divisões sucessivas ou levando-se em conta as potências referentes a cada posição, e relacionando-as com 1 s e 0 s conforme o número a ser representado. A conversão de números em Sistema Decimal para qualquer outra base pode ser feita através do mecanismo de divisões sucessivas pela base ou então convertendo-os para binário e depois encontrar o equivalente (se a base desejada for 2 n ). 10
Exemplo: Converter 10 10 para binário usando divisões sucessivas (por dois): 10 2 0 5 2 1 2 2 0 1 2 1 0 Resultado obtido: 1010 2 Processo: divide-se por 2 com quociente inteiro, sucessivamente até que o quociente seja igual a 0. Os restos da divisão, de trás para frente, formam o número binário. 11
Exemplo: Converter 10 10 para binário usando notação posicional: Processo: Etapa 1: Verificar a potência n que ultrapassa o número. 10 < 16 (2 4 ) n = 4 Etapa 2: Utilizar notação posicional de n-1 até 0. bit x 2 3 bit x 2 2 bit x 2 1 bit x 2 0 bit x 8 Bit x 4 Bit x 2 Bit x 1 12
Etapa 3: Subtrair o valor de cada potência (da mais significativa para a menos significativa). Caso a subtração seja possível, inserir o valor 1 na posição correspondente, caso contrário 0. O valor resultante de cada subtração (quando ocorrer) é utilizado na próxima subtração. 10 8 = 2 (ok valor 1) 2 4 = -2 (X valor 0) 2 2 = 0 (ok valor 1) 0 1 = -1 (X valor 0) 1 0 1 0 Resultado obtido: 1010 2 13
A adição com números binários é feita da mesma forma que fazemos com qualquer sistema de numeração, levando-se em conta que o sistema binário é formado por apenas 2 símbolos (0 e 1). As combinações possíveis destes símbolos para a execução da adição são: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10, neste caso, durante a adição será usado o bit 0 e ocorrerá um vai um para o bit à esquerda, o que pode gerar overflow. 14
A adição com números binários também é feita da mesma forma que fazemos com qualquer sistema de numeração. As combinações possíveis destes símbolos para a execução da subtração são: 0-0 = 0 0-1 = 1, neste caso, durante a subtração será usado o bit 1 e ocorrerá um empréstimo do valor da base do bit 1 mais à esquerda (2 1 = 1). 1-0 = 1 1-1 = 0. 15
Utilizam-se as mesmas regras da multiplicação decimal, mas é facilitado devido a ter somente 2 números possíveis. As combinações possíveis destes símbolos para a execução da subtração são ou 0 ou o próprio número: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 16
Verificam-se quantas vezes o divisor cabe no dividendo por tentativa; Subtrai-se do dividendo o valor resultante da multiplicação do quociente pelo divisor, encontrando-se um valor que é o resto da divisão; O resto da divisão deve ser um valor igual, no máximo, ao divisor menos 1. 17
Exemplo: Dividir 1001 por 101 1001 101 = resto 0100 e quociente 1 Em decimal: 9 / 5 = 1 com resto 4 Dividir 101010 por 110 (1010)10 110 = resto 100 e quociente 1 1001 110 = resto 011 e quociente 1 110 = 110 = resto 0 e quociente 1 18
(Geralmente) apenas para adição e subtração, devido ao uso para endereçamento de memória; Mesmas regras da aritmética binária (lembrar do empréstimo da subtração valor da base) 19
Forma polinomial multiplicativa (para base 10): Multiplica dígito mais significativo por B; Somar ao resultado o algarismo seguinte; Multiplicar esse novo resultado por B; Repetir até atingir o último algarismo. Exemplo: Converter 1011110 para base 10 1 x 2 + 0 = 2 2 x 2 + 1 = 5 5 x 2 + 1 = 11 11 x 2 + 1 = 23 23 x 2 + 1 = 47 47 x 2 + 0 = 94 20
Conversão através do Código BCD (Binary Coded Decimal Decimal codificado em binário). Cada algarismo possui código binário fixo com 4 dígitos 0 = 0000 5 = 0101 1 = 0001 6 = 0110 2 = 0010 7 = 0111 3 = 0011 8 = 1000 4 = 0100 9 = 1001 10 = 0001 0000 95 = 1001 0101 128 = 0001 0010 1000 21
Uso: apresentação de um resultado contido em um registrador em algum tipo de mostrador (ex: display) O formato BCD utiliza o sistema hexadecimal (?!?) Como são permitidos apenas os dígitos 0 a 9, é possível ler os dígitos em Hexa como Decimais. Não é conversão, é representação!!! Exemplo: o valor 15 pode ser representado como 15H 1 -> 0001, 5 -> 0101, 15 = 0001 0101 (BCD) = 1 5 H!! Lembrando que: 15D = 1111B = FH 22
Aritmética em BCD (Soma e Subtração) (F) 1111 (0) 0000 (1) 0001 (E) 1110 0010 (2) (D) 1101 (C) 1100 Pular 6 posições (letras) 0011 (3) 0100 (4) (B) 1011 0101 (5) (A) 1010 0110 (6) 1001 (9) 1000 (8) 0111 (7) 23
Soma: Somar os dígitos em Hexa (ou binário); Se a soma for superior a 9, adicionar 6 e considerar o vai-1 para a soma seguinte. Ex: somar 56 + 28 em BCD 6 + 8 = 14D (EH) 14 + 6 = 20 (14H) vai-1 5 + 2 + 1 = 8D (8H) 56 + 28 = 84 (BCD)!!Lembrar que 84D = 54H
Subtração: Análogo a adição (subtrair 6 do resultado) Ao invés de vai-1, tem-se vem-1 (ou empresta-1) Ex: 45 37 45H 37H = 0EH E 6 = 08H 16 45 37 ---- E (14)
Subtração Problema: utilizar subtração (não pode usar C2) Solução: algoritmo do complemento de 10 a b = a + (10 n b) sem registro de vai-1 Ex: 45 37 Complemento de 10 de 37 =63 Somar 45 e 63 (em hexa) = A8H Corrigir o resultado da soma BCD = 108H Descartar a centena = 08H
Representação em ponto fixo Sinal e magnitude (Módulo e Sinal) Complemento de 1 Complemento de 2 Representação em ponto flutuante IBM IEEE 754 27
Representação em ponto fixo MIPS - Millions of Instructions Per Seconds (Milhões de Instruções Por Segundo) Representação em ponto flutuante FLOPS - FLOating point instructions Per Seconds (Instruções com Ponto Flutuante Por Segundo). 28
Representação Circular n= 4 bits: 2 4 = 16 (0 a 15); 1111 + 1 = 0000-1110 1111 0000 0001 0010 + 1101 0011 1100 0100 1011 0101 0001 = - 15??? 1010 0110 1001 1000 0111 29
Fronteira positivos e negativos(bit de sinal) n = 4 bits: -8 a +7 (-1) 1111 (0) 0000 (1) 0001 (-2) 1110 0010 (2) (-3) 1101 0011 (3) negativos positivos (-4) 1100 0100 (4) -1 a -2 n-1 0 a 2 n-1-1 (-5) 1011 0101 (5) (-6) 1010 0110 (6) 1001 (-7) 1000 (-8) 0111 (7) 30
Complemento de 1 (não suficiente) Inverte-se 0 s e 1 s (-1) 1111 (0) 0000 (1) 0001 (-2) 1110 0010 (2) (-3) 1101 0011 (3) (-4) 1100 0100 (4) (-5) 1011 0101 (5) (-6) 1010 0110 (6) 1001 (-7) 1000 (-8) 0111 (7) 31
Complemento de 2 (simétrico: a -a) -a = complemento de 1 de a + 1 (ou 2 n - a) (-1) 1111 (0) 0000 (1) 0001 (-2) 1110 0010 (2) (-3) 1101 0011 (3) (-4) 1100 0100 (4) (-5) 1011 0101 (5) (-6) 1010 0110 (6) 1001 (-7) 1000 (-8)??? 0111 (7) 32
Subtração usando adição a b = a + (2 n b) (a + complemento de 2 de b) Ex: 6 4 = 0110 (6) + C2 de 0100 (4) = 0110 + 1100 = (1)0010 (-3) (-2) 1101 (-4) 1100 1110 (-1) 1111 (0) 0000 (1) 0001 0010 (2) 0011 (3) 0100 (4) 2 n b = Volta completa no círculo b posições 1 volta (-5) 1011 0101 (5) (-6) 1010 0110 (6) 1001 (-7) 1000 (-8)??? 0111 (7) 33
Tabela mais utilizada: ASCII Ninguém é louco de decorar a tabela! Mas é importante saber que: Letras maiúsculas começam em 41H Letras minúsculas começam em 61H Dígitos de 0 a 9 são 30H a 39H Esc = 27H (if ch!= 27 {... ) Outras tabelas: EBCDIC, UNICODE
Uso de operações lógicas (instruções AND, OR e XOR); Permite alterar o valor de bits individuais dentro de um byte; Um dos operandos é denominado máscara. Aplicações: Objetivo Máscara Operação Setar um ou mais bits 1 p/ setar, 0 nos demais OR Zerar um ou mais bits 0 p/ zerar, 1 nos demais AND Complementar um ou mais bits 1 p/ complementar XOR Testar se um ou mais bits estão setados 1 para testar, 0 nos demais AND
Exemplos: byte 1101 0100 Setar bit 3: 1101 0100 OR 0000 1000 = 1101 1100 Zerar bits 7 e 2: 1101 0100 AND 0111 1011 = 0101 0000 Complementar bits 4 e 5: 1101 0100 XOR 0011 0000 = 1110 0100 Testar se os bits 0 e 7 estão setados: 1101 0100 AND 1000 0001 = 1000 0000 Valor final será 0 se não estiver setado e diferente de zero se estiver setado. Após este valor, utilizar instruções de desvio condicional.
É feita pelo processador e pelo programa, dependendo de como o valor é lido. Ex: posição de memória contendo o valor 47H Pode representar uma instrução (ex: MOV B, A) Pode representar um número inteiro (71D) Pode representar um caractere (G em ASCII)
Histórico sobre computadores Tipos de memórias RAM e ROM DRAM X SRAM SDRAM ROM, PROM, EPROM, EEPROM, FLASH Site recomendado: www.howstuffworks.com.br (tópico: como as memórias funcionam) 38