Você está na página 1de 50

SISTEMAS DE NUMERAÇÃO

BIBLIOGRAFIA

 STALLINGS, William. Arquitetura e organização de computadores. 10ª edição.


São Paulo: Pearson, 2017. Disponível na Biblioteca Virtual Pearson.
Capítulo 9 até 10.3 (páginas 271 a 298).

 MONTEIRO, Mario A. Introdução à organização de computadores. 5ª edição.


Rio de Janeiro: LTC, 2010. Disponível em Minha Biblioteca.
Capítulo 2.2.1 (paginas 44 a 49).

3
REPRESENTAÇÃO DA INFORMAÇÃO
Representação da informação

 Toda informação introduzida em um computador precisa ser entendida pela


máquina para ser interpretada e processada.
 Um computador armazena informações eletronicamente.
 DDP (voltagem), corrente, óptica, etc.

 Quantos níveis diferentes precisaríamos para representar todos os símbolos da


linguagem humana?
 ENIAC era uma máquina decimal.
 IAS já era uma máquina binária.

 Atualmente computadores digitais são binários.


 Trabalham com valores discretos.

5
Representação da informação

 A menor unidade de informação de um computador é um dígito binário,


conhecido como bit.
 Para representar dados bits são agrupados.
 A IBM instituiu o agrupamento de 8 bits como sendo a menor unidade para
armazenamento de dados em um computador, e a denominou byte.
 Bytes também podem ser agrupados.
 É comum em linguagens de programação um número inteiro ser representado por 4 bytes.

 Outro termo criado pela computação é a palavra.


 Está associada ao tipo de interação entre a UCP e a memória principal.
 Alguns fabricantes usam o termo para indicar o tamanho dos registrados da UCP.

6
SISTEMAS DE NUMERAÇÃO
Sistemas de numeração

 O sistema decimal.
 Utilizamos no dia a dia um sistema baseado em dígitos decimais (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).
 98 = 90 + 8 = (9 x 10) + 8
 2.316 = dois milhares, 3 centenas, 1 dezena e 6 unidades (2x1.000 + 3x100 + 1x10 + 6).

 O sistema decimal é um sistema de base 10 (ou raiz 10).


 Cada dígito no número é multiplicado por 10, elevado a uma potência que corresponde à
posição do dígito.
 2.316 = 2x103 + 3x102 + 1x101 + 6x100

 O mesmo é válido para as frações decimais


 0,951 = 9x10-1 + 5x10-2 + 1x10-3

8
Sistemas de numeração

 O dígito mais à esquerda é conhecido como dígito mais significativo, pois ele
contém o valor mais alto.
 O dígito mais à direita é chamado de dígito menos significativo.

16,49

mais significativo menos significativo

9
Sistemas de numeração

Sistema numérico posicional  cada número é representado por uma cadeia de


 
dígitos em que cada posição i do dígito tem um peso associado ri, em que r é a
raiz, ou base, do sistema numérico.
 A forma geral é:
(... a3 a2 a1 a0, a-1 a-2 a-3 ...)b
 0 ≤ ai < b.
 A vírgula entre a0 e a-1 é chamada de vírgula de raiz.

 O número terá o valor:

10
O sistema binário

 No sistema decimal, 10 dígitos diferentes são usados para representar números


com uma base de 10.
 No sistema binário temos somente dois dígitos.
 Os números são representados por 0 e 1 para a base 2.

 Para evitar confusão utiliza-se um subscrito para indicar a base.


2.31610 base

 Os dígitos 0 e 1 têm o mesmo significado nas notações binária e decimal:


02 = 010
12 = 110

11
O sistema binário

 Para representar números maiores cada dígito em número binário tem um valor
que depende de sua posição:
102 = (1 × 21) + (0 × 20) = 210
112 = (1 × 21) + (1 × 20) = 310
1002 = (1 × 22) + (0 × 21) + (0 × 20) = 410
 Os valores fracionários são representados com as potências negativas da raiz:
1001,1012 = 23 + 20 + 2−1+ 2−3 = 9,62510
8 1 0,5 0,125
3 0 -1 -3

12
O sistema binário

 A representação binária do valor de


Y = {... b2b1b0,b–1b–2b–3 ... }
é
  𝑖
𝑌 =∑ (𝑏𝑖 × 2 )
𝑖

13
O sistema binário

 Conversão entre binário e decimal


 Conversão de binário para decimal:
 Multiplicar cada dígito binário pela potência de 2 e somar os resultados.

 Exemplo:
10011012 = 1x26 + 1x23 + 1x22 + 1x20 = 64+8+4+1 = 7710
6543210

111,0112 = 1x22 + 1x21 + 1x20 + 1x2-2 + 1x2-3 = 4+2+1+0,25+0,125 = 7,37510


2 1 0 -1 -2 -3

14
O sistema binário

 Conversão entre binário e decimal


 Conversão de decimal para binário (parte inteira):
 Converter um inteiro decimal N para a forma binária.
 Dividir o número por 2 e obter um quociente e um resto.
 Sucessivamente dividir o quociente obtido por 2 obtendo um novo quociente e um novo
resto.
 Continuar o processo até obter quociente 1.
 Encadear o quociente com os restos obtidos, do último até o primeiro.

15
O sistema binário

 Exemplo: Converter 108 para a base 2.

108 2
0 54 2
0 27 2
1 13 2
1 6 2
0 3 2
1 1
10810 = 11011002

16
O sistema binário

 Conversão entre binário e decimal


 Conversão de decimal para binário (parte fracionária):
 Ao contrário da conversão da parte inteira, a parte fracionária é multiplicada por 2.
 A parte inteira do novo número obtido é colocada na parte fracionária do número
convertido.
 Sucessivamente multiplicar a parte fracionária, pegando a parte inteira do novo número
obtido e ficando somente com a parte fracionária para o próximo passo.
 Repetir o processo até obter zero na parte fracionária ou chegar na precisão desejada.

17
O sistema binário

 Exemplo: Converter 0,6875 para a base 2.

0,6875 x 2 = 1,375 Parte inteira: 1 Parte Fracionária: 0,375


0,375 x 2 = 0,75 Parte inteira: 0 Parte Fracionária: 0,75
0,75 x 2 = 1,5 Parte inteira: 1 Parte Fracionária: 0,5
0,5 x 2 = 1 Parte inteira: 1 Parte Fracionária: 0

0,687510 = 0,10112

18
O sistema binário

 Exemplo: Converter 0,2 para a base 2.

0,2 x2= 0,4 Parte inteira: 0 Parte Fracionária: 0,4


0,4 x2= 0,8 Parte inteira: 0 Parte Fracionária: 0,8
0,8 x2= 1,6 Parte inteira: 1 Parte Fracionária: 0,6
0,6 x2= 1,2 Parte inteira: 1 Parte Fracionária: 0,2
0,2 x2= 0,4 Parte inteira: 0 Parte Fracionária: 0,4
0,4 x2= 0,8 Parte inteira: 0 Parte Fracionária: 0,8
0,8 x2= 1,6 Parte inteira: 1 Parte Fracionária: 0,6
0,6 x2= 1,2 Parte inteira: 1 Parte Fracionária: 0,2
0,2 x2= 0,4 Parte inteira: 0 Parte Fracionária: 0,4
0,4 x2= 0,8 Parte inteira: 0 Parte Fracionária: 0,8
0,8 x2= 1,6 Parte inteira: 1 Parte Fracionária: 0,6
0,6 x2= 1,2 Parte inteira: 1 Parte Fracionária: 0,2
0,210 = 0,001100110011.....2 19
O sistema binário

Base 2 Base 10
0,0011 0,1875
0,00110011 0,19921875
0,001100110011 0,199951172
0,0011001100110011 0,199996948
0,00110011001100110011 0,199999809
0,001100110011001100110011 0,199999988
0,0011001100110011001100110011 0,199999999
0,00110011001100110011001100110011 0,2

20
Notação hexadecimal

 O sistema binário é excelente para computadores digital, mas é excessivamente


complicado para seres humanos.
 A maioria dos profissionais que passa tempo trabalhando em dados brutos reais no
computador prefere uma notação mais compacta.

 A notação decimal é mais conveniente para humanos, porém a conversão entre


binário e decimal é uma dificuldade.
 Como solução é utilizada a notação hexadecimal.
 Os dígitos binários são agrupados em conjuntos de quatro bits, chamados de nibble.

21
Notação hexadecimal

 São utilizados 16 símbolos.


 Uma sequência de dígitos hexadecimais pode ser pensada como uma
representação de um inteiro na base 16.
 Os números hexadecimais são vistos como números em sistema numérico posicional com
base 16.

 A representação hexadecimal do valor de


Z = {... h2h1h0,h–1h–2h–3 ... }
é
  𝑖
𝑍 =∑ (h𝑖 × 16 )
𝑖

22
Notação hexadecimal

DEC BIN HEXA DEC BIN HEXA


0 0000 0 8 1000 8
Exemplo:
1 0001 1 9 1001 9 2EC16 = 2 x 162 + 14 x 161 + 12 x 160
2 0010 2 10 1010 A 2 x 256 + 14 x 16 + 12 x 1
162 161 160
3 0011 3 11 1011 B 512 + 224+ 12
4 0100 4 12 1100 C 74810
5 0101 5 13 1101 D
Em binário?
6 0110 6 14 1110 E
2EC16 = 0010 1110 1100
7 0111 7 15 1111 F

23
Notação hexadecimal

 A notação hexadecimal é usada como uma notação concisa para representar


qualquer sequência de dígitos binários.
 Razões para o uso de notação hexadecimal:
 É mais compacta que uma notação binária.
 Na maioria dos computadores os dados binários ocupam múltiplos de 4 bits e,
consequentemente, alguns múltiplos de um único dígito hexadecimal.
 É fácil converter entre a notação binária e a hexadecimal.

24
ARITMÉTICA
COMPUTACIONAL
Unidade lógica e aritmética (ULA)

 A Unidade Lógica e Aritmética (Arithmetic Logic Unit - ALU) é a parte do


computador que realiza operações lógicas e aritméticas sobre os dados.

26
REPRESENTAÇÃO DE NÚMEROS
INTEIROS
Representação de inteiros

 No sistema binário, números podem ser representados com os dígitos 0 e 1, o


sinal de menos e vírgula.
 Para armazenamento e processamento no computador não existe o sinal de
menos nem a vírgula.
 Somente os dígitos 0 e 1 podem ser usados para representar números.

 Para inteiros não negativos a representação é direta.


 Um byte (palavra de 8 bits) pode representar números de 0 a 255.
 000000002 = 010
 000000012 = 110
 000101102 = 2210
 111111112 = 25510

28
Representação de inteiros

 
Se uma sequência de n bits an–1an–2...a1a0 for interpretada como um inteiro sem
sinal A, seu valor é:

 Como somar inteiros bit a bit?


 0+0 = 0
 0+1 = 1
 1+0 = 1 1 1 1 1
 1+1 = 10 0 1 0 1 0 1 0 1
+ 0 1 1 1 0 1 0 0
1 1 0 0 1 0 0 1

29
Representação de inteiros

 Existem diferentes convenções usadas para representar números inteiros


negativos.
 Todas envolvem o tratamento do bit mais significativo (mais à esquerda) na
palavra como um bit de sinal.
 0  positivo
 1  negativo

 A forma de representação mais simples que é a representação sinal-magnitude.


 Em uma palavra de n bits, o bit mais significativo representa o sinal e os n-1 bits mais à
direita representam a magnitude.

000101102 = +2210
100101102 = -2210

30
Representação de inteiros

 Desvantagens na representação sinal-magnitude.


 Adição e subtração precisam considerar os sinais dos números.
 Existem duas representações para o 0.
 +010 = 000000002
 -010 = 100000002

31
Representação de inteiros

 Representação em complemento de 2 para números negativos.


 Utiliza o bit mais significativo como um bit de sinal.
 O número zero é identificado como um número positivo.
 Tem um bit de sinal 0 e uma magnitude contendo apenas zeros.

 O intervalo de inteiros positivos vai de 0 até 2n-1-1.


 Considerando 1 byte: de 00000000 até 01111111 (0 até 127).
 Qualquer número maior exigiria mais bits.

 O intervalo de inteiros negativos vai de -1 até -2n-1.


 Considerando 1 byte: de 10000000 até 11111111 (-1 até -128).

32
Representação de inteiros

 Características da representação e aritmética de complemento de dois:


 Intervalo  -2n-1 a 2n-1- 1.
 Representação de zero  Única.
 Negação  Faça o complemento booleano de cada bit do número positivo correspondente,
depois some 1.
 Expansão da extensão em bits  Acrescente posições de bit adicionais à esquerda e
preencha com o valor do bit de sinal original.
 Regra de overflow  Se dois números com o mesmo sinal são somados, então o overflow
ocorre se e somente se o resultado tem o sinal oposto.
 Regra de subtração  Para subtrair B de A, pegue o complemento de dois de B e some-o a
A.

33
Representação de inteiros

Decimal Sinal-magnitude Complemento de dois


-4 --- 100
-3 111 101
-2 110 110
-1 101 111
-0 100 ---
0 000 000
1 001 001
2 010 010
3 011 011

34
Representação de inteiros

 Conversão de complemento de dois para decimal.

-128 64 32 16 8 4 2 1

-128 64 32 16 8 4 2 1
1 1 1 0 1 0 1 0
-128 +64 +32 +8 +2 = - 22

35
Tamanho do intervalo

 Às vezes, é desejável que um inteiro de n bits seja armazenado em m bits,


sendo m > n.
 Na notação sinal-magnitude basta mover o bit de sinal para a posição mais à
esquerda e preencher com zeros.
 Na notação complemento de dois, mover o bit de sinal para a nova posição mais
à esquerda e preencher com cópias do bit de sinal.

SINAL-MAGNITUDE COMPLEMENTO DE DOIS


DECIMAL
8 bits 16 bits 8 bits 16 bits
+22 0001011 0000000000010110 00010110 0000000000010110
0
-22 1001011 1000000000010110 11101010 1111111111101010
0
36
ARITMÉTICA COM INTEIROS
Aritmética com inteiros

 A aritmética binária pode ser realizada com números utilizando a notação sinal-
magnitude ou a notação complemento de dois.

 Estudaremos a aritmética utilizando a notação complemento de dois.

38
Negação

 Para realizar a negação em complemento de dois:


 Inverta todos os bits do número.
 Some 1.

 Processo conhecido como a operação de complemento de dois.


 Exemplos:
+22 = 00010110 -22 = 11101010
11101001 (inverte bits) 00010101 (inverte bits)
+1 (soma 1) +1 (soma 1)
11101010 (-22) 00010110 (+22)

39
Negação

 Como fica a negação do zero?


 Fazendo um exemplo com números de 8 bits (1 byte).

0 = 00000000
11111111 (inverte bits)
+1 (soma 1)

100000000
Número de 8 bits
Descartar

40
Adição e subtração

 A adição em complemento de dois é direta.


 É feita como se os dois números fossem inteiros sem sinal.

 Em qualquer adição, o resultado pode ser maior do que pode ser mantido no
tamanho utilizado da palavra.
 Essa condição é chamada de overflow.
 Quando ocorre overflow a ULA deve sinalizar.

 Regra do overflow:
Se dois números são somados e ambos são positivos ou ambos são
negativos, então o overflow ocorre se, e somente se, o resultado tiver o sinal
oposto.

41
Adição e subtração

 Exemplos

00110001 (49) 10001011 (-117) 11101010 (-22)


+00100110 (38) +00100000 (32) +00010110 (22)

01010111 (87) 10101011 (-85) 100000000 (0)

carry

11001100 (-52) 01001001 (73) 11001010 (-54)


+01101001 (105) +01101010 (106) +10010001 (-111)

100110101 (53) 10110011 (-77) 101011011 (91)

carry overflow carry overflow

42
Adição e subtração

 Para a subtração utiliza-se a regra da subtração:


Para subtrair um número (subtraendo) de outro (minuendo), pegue o
complemento de dois do subtraendo e some-o ao minuendo.

 Desta forma a subtração é obtida com o uso da adição.

43
Adição e subtração

 Hardware para soma e subtração:

Registrador A Registrador B

Complemento

Seletor

Registrador A
Overflow

44
Multiplicação

 A multiplicação é uma operação mais complexa em comparação com a adição e


a subtração.
 Tanto em hardware quanto em software.

 Vários algoritmos foram criados.


 Multiplicação de inteiros sem sinal.
 Envolve a geração de produtos parciais, um para cada dígito no multiplicador.
 Os produtos parciais são então somados para produzir o produto final.
 Quando o bit multiplicador é 0, o produto parcial é 0.
 Quando o multiplicador é 1, o produto parcial é o multiplicando.

45
Multiplicação

 Exemplo:

18 10010 (18)
x 13 x 1101 (13)

54 10010
+18 00000
234 10010
10010
11101010 (234)

46
Multiplicação

 Multiplicação em complemento de dois .


 A forma de multiplicação de inteiros vista anteriormente falha se multiplicando ou
multiplicador forem negativos.
 Uma maneira de contornar a situação é:
 Converter números negativos em positivos.
 Realizar a multiplicação conforme visto.
 Se multiplicando e multiplicador tiverem sinais diferentes, fazer o complemento do resultado.

 Algoritmo de Booth.
 É capaz de implementar a multiplicação com números em complemento de dois mais
rapidamente.
 A explicação de sua implementação pode ser encontrada no capítulo 10 (pag 291) do livro
“STALLINGS, William. Arquitetura e organização de computadores. 10ª edição. São Paulo:
Pearson, 2017.”
47
Multiplicação

 Algoritmo de Booth:

48
Divisão

 A divisão é um pouco mais complexa que a multiplicação.


 Envolve deslocamento repetitivo e adição ou subtração.
 Divisão de inteiros sem sinal.
 Os bits do dividendo são examinados da esquerda para a direita, até que o conjunto de bits
examinados represente um número maior ou igual ao divisor.
 Até que esse evento ocorra, 0s são colocados no quociente da esquerda para a direita.
 Quando o evento ocorre, um 1 é colocado no quociente e o divisor é subtraído do dividendo
parcial.
 O resultado é conhecido como resto parcial.
 Desse ponto em diante, a divisão segue um padrão cíclico.
 Em cada ciclo, bits adicionais do dividendo são anexados ao resto parcial até que o resultado
seja maior ou igual ao divisor.
 O processo continua até que os bits do dividendo terminem.
49
Divisão

 Exemplo:
Complemento de dois de 01011 = 10101
147 11
(147) (11)
14 13
-11 10010011 1011
100 10 1101
37 10101 (13)
-33
4 001110
10101
0001111
10101
00100
(4)

50

Você também pode gostar