1 - UFERSA

Propaganda
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
x103 x102 x101 X100 9000+100+90+8
9
1
9
8
9198
3



Generalizando, um número N é expresso da seguinte
forma:
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:
n 1
N   di Bi
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: 4125
N
N
N
N
=
=
=
=
4 x 52 + 1 x 51 + 2 x 50
4 x 25 + 1 x 5 + 2 x 1
100 + 5 + 2
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
Designação
Quantidade
Nibble
4 bits
Byte
8 bits
Word
2 bytes
Doubleword
4 bytes
Quadword
8 bytes
Paragraph
16 bytes
7
◦ Grandezas binárias
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
8

Para converter um número de base 2 para outro de
base 2n, 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:
◦
◦
◦
◦
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):

10 2
0 5
1
2
2
0

2
1 2
1 0
Resultado obtido: 10102

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 1010 para binário usando

Processo:
notação posicional:
◦ 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 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: 10102
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:
0x0=0
0x1=0
1x0=0
1x1=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






1x2+0=2
2x2+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
dígitos
◦ 0 = 0000
5
◦ 1 = 0001
6
◦ 2 = 0010
7
◦ 3 = 0011
8
◦ 4 = 0100
9
possui código binário fixo com 4
=
=
=
=
=
0101
0110
0111
1000
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)
(0)
(F)
1111
0000
(1)
0001
0010 (2)
(E) 1110
(D) 1101
(C) 1100
0011 (3)
“Pular” 6
posições
(letras)
0100 (4)
0101 (5)
(B) 1011
0110 (6)
(A) 1010
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 + (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
1111
-
0000
0001
0010
1110
0011
1101
0100
1100
0101
1011
0001 = - 15???
+
0110
1010
1001
1000
0111
29

Fronteira positivos e negativos(bit de sinal)
◦ n = 4 bits: -8 a +7
(-1)
1111
(0)
0000
(1)
0001
0010 (2)
(-2) 1110
0011 (3)
(-3) 1101
negativos
-1 a -2n-1
0100 (4)
(-4) 1100
positivos
0 a 2n-1 - 1
0101 (5)
(-5) 1011
0110 (6)
(-6) 1010
1001
(-7)
1000
0111
(7)
(-8)
30

Complemento de 1 (não suficiente)
◦ Inverte-se 0’s e 1’s
(-1)
1111
(0)
0000
(1)
0001
0010 (2)
(-2) 1110
0011 (3)
(-3) 1101
0100 (4)
(-4) 1100
0101 (5)
(-5) 1011
0110 (6)
(-6) 1010
1001
(-7)
1000
0111
(7)
(-8)
31

Complemento de 2 (simétrico: a ⇔ -a)
◦ -a = complemento de 1 de a + 1 (ou 2n- a)
(-1)
1111
(0)
0000
(1)
0001
0010 (2)
(-2) 1110
0011 (3)
(-3) 1101
0100 (4)
(-4) 1100
0101 (5)
(-5) 1011
0110 (6)
(-6) 1010
1001
(-7)
1000
0111
(7)
(-8)
???
32

Subtração usando adição
(a + complemento de 2 de b)
◦ a – b = a + (2n – b)
Ex: 6 – 4
=
(-2)
0110 (6) +
C2 de 0100 (4)
(-3) 1101
=
0110 + 1100
=
(-4) 1100
(1)0010
1 volta
(-1)
1111
(0)
0000
(1)
0001
0010 (2)
1110
0011 (3)
2n – b =
Volta completa
no círculo – b posições
0100 (4)
0101 (5)
(-5) 1011
0110 (6)
(-6) 1010
1001
(-7)
1000
0111
(7)
(-8)
???
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
Download