teoria da computaÇÃo - ufersa.edu.br · sistema de numeração: conjunto de regras que nos...

38
Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 1 Conceitos necessários

Upload: phamnhu

Post on 16-Nov-2018

213 views

Category:

Documents


0 download

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