teoria da computaÇÃo - ufersa.edu.br · sistema de numeração: conjunto de regras que nos...
TRANSCRIPT
Prof. Leonardo Augusto Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: CIÊNCIA DA COMPUTAÇÃO
Aula 1 – Conceitos necessários
Sistema de numeração: conjunto de regras que nospermite escrever e ler qualquer número, utilizando paraisto símbolos básicos. Os símbolos que utilizamos (osalgarismos de 0 a 9) são apenas convenções para seremutilizadas em sistemas numéricos, sendo que podemser utilizados letras, símbolos geométricos ou qualqueroutra simbologia.
Base de um sistema: quantidade de símbolosnecessários para representar números em um sistemade 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çãoque cada algarismo ocupa com sua potênciacorrespondente.
2
Um número no sistema de base decimal pode serdecomposto em uma soma de potências de base 10. E assimpara cada sistema de numeração, com sua basecorrespondente.
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
x103 x102 x101 X100 9000+100+90+8
9 1 9 8 9198
3
Generalizando, um número N é expresso da seguinteforma:
N = dn-1 x bn-1 + dn-2 x bn-2 + ... + d1 x b1 +d0 x b0
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
Matematicamente:
4
1
0
n
i
i
iBdN
Importante: Qualquer sistema de numeração, aoser descrito na equação de numeração posicional,resultará no valor correspondente ao sistemadecimal (ou seja, é uma equação de conversão dequalquer base para a base 10).
Ex: 4125
N = 4 x 52 + 1 x 51 + 2 x 50
N = 4 x 25 + 1 x 5 + 2 x 1 N = 100 + 5 + 2 N = 10710
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
7
Designação Quantidade
Nibble 4 bits
Byte 8 bits
Word 2 bytes
Doubleword 4 bytes
Quadword 8 bytes
Paragraph 16 bytes
◦ Grandezas binárias
8
Grandeza Número de bytes
Kilobyte 210 ou 1024 bytes
Megabyte 220, 1024 KB ou 1048576 bytes
Gigabyte 230, 1024 MB ou 1073741824 bytes
Terabyte 240, 1024 GB, ou 1099511627776 bytes
Petabyte 250, 1024 TB, ou 1125899906842624 bytes
Exabyte 260 ou 1152921504606846976 bytes
Zettabyte 270 ou 1180591620717411303424 bytes
Yottabyte 280 ou 1208925819614629174706176 bytes
Para converter um número de base 2 para outro debase 2n, basta dividir o número binário, da direitapara a esquerda, em grupos de n bits e encontrar osímbolo equivalente.
O inverso é realizado substituindo o símbolo pelogrupo de n bits correspondentes.
Exemplos:◦ 1110101112 = 111-010-111 = 7278
◦ 1110101112 = 0001-1101-0111X = 1(13)7 = 1D716
◦ 2378 = 010, 011, 111 = 10011111X2
◦ F5A16 = 1111, 0101, 1010 = 1111010110102 =393010
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 2n).
10
Exemplo: Converter 1010 para binário usando divisões sucessivas (por dois):
Resultado obtido: 10102
Processo: divide-se por 2 com quociente inteiro,sucessivamente até que o quociente seja igual a 0. Osrestos da divisão, de trás para frente, formam onúmero binário.
11
10 2
0 5 2
1 2 2
0 1 2
1 0
Exemplo: Converter 1010 para binário usandonotação posicional:
Processo:◦ Etapa 1: Verificar a potência n que ultrapassa o
número.
10 < 16 (24) n = 4
◦ Etapa 2: Utilizar notação posicional de n-1 até 0.
bit x 23 bit x 22 bit x 21 bit x 20
bit x 8 Bit x 4 Bit x 2 Bit x 1
12
◦ Etapa 3: Subtrair o valor de cada potência (da maissignificativa para a menos significativa).
◦ Caso a subtração seja possível, inserir o valor “1” naposição correspondente, caso contrário “0”. O valorresultante 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)
◦ Resultado obtido: 10102
1 0 1 0
13
A adição com números binários é feita da mesmaforma que fazemos com qualquer sistema denumeração, levando-se em conta que o sistemabinário é formado por apenas 2 símbolos (0 e 1).
As combinações possíveis destes símbolos para aexecuçã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 damesma forma que fazemos com qualquer sistemade numeração.
As combinações possíveis destes símbolos para aexecuçã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 valorda base do bit 1 mais à esquerda (2 – 1 = 1).
1 - 0 = 1
1 - 1 = 0.
15
Utilizam-se as mesmas regras da multiplicaçãodecimal, mas é facilitado devido a ter somente2 números possíveis.
As combinações possíveis destes símbolos paraa execução da subtração são ou 0 ou o próprionúmero:
0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1
16
Verificam-se quantas vezes o divisor cabeno dividendo por tentativa;
Subtrai-se do dividendo o valor resultanteda multiplicação do quociente pelo divisor,encontrando-se um valor que é o resto dadivisã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 esubtração, devido ao uso paraendereç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 (BinaryCoded Decimal – Decimal codificado embiná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 emum 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)
23
00000001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
10001001
1010
(1)
(2)
(3)
(4)
(5)
(6)
(7)(8)
(9)
(A)
(B)
(D)
(E)
(F)
(C)
(0)
“Pular” 6
posições
(letras)
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 + (10n – 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: 24 = 16 (0 a 15); 1111 + 1 = 0000
29
00000001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
10001001
1010
+-
0001 = - 15???
Fronteira positivos e negativos(bit de sinal)◦ n = 4 bits: -8 a +7
30
00000001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
10001001
1010
(0)(1)
(2)
(3)
(4)
(5)
(6)
(7)(-8)
(-7)
(-6)
(-5)
(-4)
(-3)
(-2)
(-1)
-1 a -2n-1 0 a 2n-1 - 1
positivosnegativos
Complemento de 1 (não suficiente)◦ Inverte-se 0’s e 1’s
31
00000001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
10001001
1010
(0)(1)
(2)
(3)
(4)
(5)
(6)
(7)(-8)
(-7)
(-6)
(-5)
(-4)
(-3)
(-2)
(-1)
Complemento de 2 (simétrico: a ⇔ -a)◦ -a = complemento de 1 de a + 1 (ou 2n- a)
32
00000001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
10001001
1010
(0)(1)
(2)
(3)
(4)
(5)
(6)
(7)(-8)
(-7)
(-6)
(-5)
(-4)
(-3)
(-2)
(-1)
???
Subtração usando adição◦ a – b = a + (2n – b) (a + complemento de 2 de b)
33
00000001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
10001001
1010
(0)(1)
(2)
(3)
(4)
(5)
(6)
(7)(-8)
(-7)
(-6)
(-5)
(-4)
(-3)
(-2)
(-1)
???
Ex: 6 – 4
=
0110 (6) +
C2 de 0100 (4)
=
0110 + 1100
=
(1)0010
2n – b =
Volta completa
no círculo – b posições
1 volta
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 deum 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 seestiver setado. Após este valor, utilizar instruções de desviocondicional.
É 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