representação binária

Propaganda
Organização e Arquitetura de
Computadores
Material de apoio
Definição de bit, byte, caractere, medidas de grandeza
em sistemas computacionais. Exemplos de aplicação.
Tópico: 04
2
Esclarecimentos




Esse material é de apoio para as aulas da disciplina e não substitui a
leitura da bibliografia básica.
Os professores da disciplina irão focar alguns dos tópicos da
bibliografia assim como poderão adicionar alguns detalhes não
presentes na bibliografia, com base em suas experiências profissionais.
O conteúdo de slides com o título “Comentário” seguido de um texto,
se refere a comentários adicionais ao slide cujo texto indica e tem por
objetivo incluir alguma informação adicional aos conteúdo do slide
correspondente.
Bibliografia básica:
 PATTERSON, A.D.E.; HENNESSY, L.J.. Organização e projetos de
computadores: a interface hardware/software. São Paulo: Campus,
2005.;
 MONTEIRO, Mário A.. Introdução à organização de computadores.
5.ed. Rio de Janeiro: LTC, 2007.
 STALLINGS, William. Arquitetura e organização de computadores :
projeto para o desempenho. São Paulo: Pearson Education, 2005.
3
SISTEMAS DE NUMERAÇÃO
Sistemas de numeração são formas de representação de valores.
NÃO POSICIONAIS
POSICIONAIS
o valor do símbolo numérico
não depende da sua posição
no número
o valor do símbolo numérico
depende da posição em que
está inserido
numerais romanos
o símbolo X vale 10 em qualquer
posição em que estiver no
número, seja XII, IX ou LXV
numerais decimais
o símbolo 4 dentro do número
425 significa o valor 400, mas no
número 348 significa 40
4
SISTEMAS DE NUMERAÇÃO
Cotidianamente trabalhamos com o sistema posicional decimal, assim chamado
por ter dez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Uma das explicações históricas para o sucesso desse sistema reside no fato de os
seres humanos terem 10 dedos, o que facilitava, nos primórdios de nossa
civilização, a tarefa de contar carneiros, bois, pedras, pessoas, etc.
Contar com os dedos é algo natural até os dias de hoje, sendo o primeiro
exercício matemático a que nos submetemos desde o nosso nascimento. Basta
perguntar a idade a uma criança de 3 anos, e ela responderá mostrando 3 dedos
da mão.
Como tem dez símbolos, dizemos também que esse é um sistema de base 10.
5
SISTEMAS DE NUMERAÇÃO
Apesar de utilizarmos com maior freqüência o sistema posicional decimal de numeração, os
computadores são máquinas que trabalham com outro sistema: o sistema posicional de
base 2 ou binário, o qual é composto de apenas dois símbolos: os símbolos 0 e 1.
Para entendermos a razão do emprego do sistema binário nos sistemas computacionais é
necessário refletirmos acerca da constituição física do computador. Como já vimos
anteriormente, um computador nada mais é senão uma máquina constituída por uma série
de dispositivos eletrônicos devidamente conectados de forma a processar entradas (dados) e
gerar resultados (informações).
Em termos físicos, a única coisa que realmente “trafega” entre esses dispositivos eletrônicos
são sinais elétricos de tensão e corrente que vão simbolizar os dados a serem processados,
endereços de recuperação e armazenamento e os sinais de controle de funcionamento dos
diversos dispositivos.
Se fôssemos supor a designação de um sinal elétrico diferente para cada símbolo da
linguagem humana (letras, algarismos, e sinais de pontuação) seriam necessários mais de
uma centena de níveis de tensão ou corrente diferentes. Mesmo se quiséssemos representar
apenas os algarismos do nosso sistema decimal, precisaríamos de 10 níveis de tensão e
corrente diferentes.
Em tensões e correntes relativamente baixas como aquelas com as quais os computadores
trabalham, essa quantidade de níveis diferentes a serem definidos exige que a diferença
entre um nível e outro seja tão pequena a ponto de comprometer a correta interpretação da
informação em caso de qualquer pequeno ruído ou interferência no sinal.
6
SISTEMAS DE NUMERAÇÃO
Uma máquina capaz de interpretar diversos níveis diferentes seria certamente de custo
bastante elevado, de complexidade considerável e de baixa confiabilidade (isso será discutido
com maior ênfase no estudo da história da evolução dos computadores). Para solucionar esse
problema optou-se por construir máquinas binárias, capazes de identificar apenas duas
informações: o 0 e o 1. Assim, cada componente só precisa reconhecer dois níveis de tensão
distintos: um que representa o valor 0 e outro que representa o valor 1.
Tensão
(V)
Tensão
(V)
5
4,5
7
3,5
3,5
6
3
5
2,5
Intervalo
de
transição
4
2
3
1,5
1,5
2
1
0
1
8
4
0,5
5
9
1
0
0
Exemplo hipotético de representação
de informações em 10 níveis distintos,
numa escala de tensão de 0 a 5 V
0
Tempo
(t)
Exemplo hipotético de representação
de informações em 2 níveis distintos,
numa escala de tensão de 0 a 5 V
Tempo
(t)
7
SISTEMAS DE NUMERAÇÃO
Outra grande vantagem no uso do sistema binário é facilitar o emprego da lógica booleana
(Sim/Não, Verdadeiro/ Falso, Aberto/Fechado,...), criada em 1854 pelo matemático inglês
George Boole, tanto na construção de componentes quanto como base para a escrita de
programas (programação).
Com esta lógica foi possível a criação de portas lógicas, o elemento básico para a criação de
computadores. Complementando o simples “sim” e “não”, “ligado” e “desligado”, etc que os
números “1” e “0” poderiam representar, Boole criou condições especiais, a partir do
“verdadeiro” e “falso” que tais números também poderiam representar, juntando à base
binária a tradicional teoria dos conjuntos - como a condição “E” para a interseção de dois
conjuntos e “OU” para a união de dois conjuntos.
A esse conjunto de condições criado por Boole dá-se o nome de álgebra booleana.
Com isto foi possível a criação do circuito lógico, um circuito capaz de reagir de acordo com
dados entrados, ou seja, dar uma resposta de acordo com a entrada, de uma maneira prédefinida.
Além do sistema binário, outros dois sistemas de numeração são utilizados no estudo dos
computadores:
• Sistema octal (base 8): utiliza os símbolos
0, 1, 2, 3, 4, 5, 6, e 7;
menos utilizado
• Sistema hexadecimal (base 16): utiliza os símbolos
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, e F.
usado com frequência na
representação dos endereços
de memória
8
BITS E BYTES
O termo BIT nada mais é do que uma contração das palavras BInary digiT, ou seja, dígito
binário. Portanto, como já vimos anteriormente, um BIT só pode assumir dois valores: o
valor 0 ou o valor 1.
O bit é a menor unidade de informação armazenável e trefegável num sistema
computacional.
Todos os dados armazenados ou processados no computador são representados na forma
de bits. Como um bit é muito pouco, já que pode representar apenas dois valores, os
computadores trabalham com agrupamentos de bits. Por exemplo, os processadores
antigos, como o 8080, podiam operar com 8 bits de cada vez. Os PCs que usavam os
processadores 8088 e 80286 trabalham com 16 bits (apesar de aceitarem também
instruções e dados de 8 bits). Os processadores 80386, 80486, Pentium e superiores,
operam com 32 bits, apesar de também aceitarem dados de 8 e 16 bits, e de terem algumas
instruções especiais para dados de 64 e 80 bits. Os processadores mais modernos já
trabalham naturalmente com conjuntos de 64 bits.
A essa quantidade de bits que um processador consegue manipular de uma única vez dá-se
o nome de palavra, a qual define qual o tamanho do agrupamento de bits padrão no
mecanismo de transferência de informações entre a CPU e a memória principal de uma
máquina. A palavra é uma característica de projeto de um microprocessador utilizada para
indicar a unidade de transferência e processamento de um computador.
9
BITS E BYTES
A primeira definição formal atribuída a um determinado conjunto ordenado de bits foi o
BYTE, o qual representa um conjunto de 8 bits. Essa terminologia, criada pela IBM
como uma referência para o armazenamento e transferência de dados entre UCP e
memória e periféricos, passou a ser utilizada por todo o mercado e ainda hoje, apesar da
evolução da capacidade de manipulação dos atuais sistemas, se mantém como uma
unidade de referência.
Embora os computadores trabalhem no sistema binário, a comunicação entre o homem e a
máquina é feita utilizando-se símbolos da nossa linguagem cotidiana aos quais
denominamos caracteres (as letras, os algarismos, os sinais de pountuação, etc.), os
quais constituem a menor informação inteligível aos seres humanos . Portanto, para o
adequado processamento dessas informações, é necessário que cada caracter seja
representado por um conjunto de bits.
Existem diversos tamanhos de agrupamentos de bits para representar caracteres, sendo
que os principais códigos de representação de caracteres utilizam grupos de 8 bits por
caracter, fazendo com que os termos byte e caracter sejam por vezes tratados como
sinônimos.
Assim, temos:
BIT – Menor unidade de informação processável num computador. Pode representar
apenas dois valores: 0 e 1.
 BYTE - Grupo de 8 bits. Pode representar valores numéricos entre 0 e 255. Pode também
ser usado para representar caracteres. Em geral cada caracter ocupa um byte.
 CARACTER - Menor informação inteligível aos seres humanos (por exemplo, a letra “a” ou
o algarismo “7”).

10
BITS E BYTES
Para referenciar a capacidade de armazenamento e transferência de informações no formato
binário são utilizados os múltiplos do bit e do byte.
Da mesma forma que usamos cotidianamente como unidade de medida de comprimento o
metro (m) e seus múltiplos, como o quilômetro (km), que equivale a 1000 metros,
também o fazemos com os bits e bytes. Note que para medidas de distância utilizamos o
sistema decimal, e, portanto, múltiplos na base 10: decâmetro (101 metros), hectômetro
(102 metros) e quilômetro (103 metros).
Porém, como utilizamos em computação o sistema binário, é conveniente trabalharmos com
as potências da base 2, onde 210 não é exatamente 1000, mas 1024. Assim, temos:
kB (KILOBYTE) - 210 bytes = 1024 bytes.
MB (MEGABYTE) - 220 bytes = 1024 x 1024 bytes = 1024 kB = 1.048.576 bytes.
GB (GIGABYTE) - 230 bytes = 1024 x 1024 x 1024 bytes = 1024 MB = 1.073.741.824 bytes.
Para os bits, o raciocínio é exatamente o mesmo:
kbits (KILOBITS) - 210 bits = 1024 bits.
Mbits (MEGABITS) - 220 bits = 1024 x 1024 bits = 1024 kbits = 1.048.576 bits.
Gbits (GIGABITS) - 230 bits = 1024 x 1024 x 1024 bits = 1024 Mbits = 1.073.741.824 bits.
Além do Kilo (210), do Mega (220), e do Giga (230), que são os múltiplos mais comuns, temos
ainda o Tera (T) = 240 ou 1024 G, e o Peta (P) = 250 ou 1024 T.
11
CONVERSÃO ENTRE BASES
Antes de falarmos de conversão, é interessante tecermos algumas considerações sobre a
composição dos números nos sistemas de numeração posicional.
Voltando ao sistema decimal, com o qual estamos melhor familiarizados, observamos que:
 um número de 1 algarismo pode assumir 10 valores diferentes, de 0 a 9
 um número de 2 algarismos pode assumir 100 valores diferentes, de 00 a 99
 um número de 3 algarismos pode assumir 1000 valores diferentes, de 000 a 999
Isso ocorre porque num sistema de numeração posicional, o número máximo de valores
diferentes que podem ser representados por n algarismos em uma base b qualquer é
igual a bn.
Assim, com 1 algarismo temos 101 = 10 valores, com 2 algarismos temos 102 = 100
valores, com 3 algarismos temos 103 = 1000 valores, e assim por diante.
Da mesma forma, no sistema binário:
 um número de 1 bit pode assumir 2 valores diferentes, de 0 a 1 (porque 21 = 2)
 um número de 2 bits pode assumir 4 valores diferentes, de 00 a 11 (porque 22 = 4)
 um número de 3 bits pode assumir 8 valores diferentes, de 000 a 111 (porque 23 = 8)
 um número de 4 bits pode assumir 16 valores diferentes, de 0000 a 1111 (porque 24
= 16)
12
CONVERSÃO ENTRE BASES
CONVERSÃO DE QUALQUER BASE PARA DECIMAL
Voltando mais uma vez ao sistema decimal, podemos observar que, se tivermos um
número qualquer, como por exemplo, 2463, esse número é formado por 2 milhares, 4
centenas, 6 dezenas e 3 unidades. Isso pode também ser escrito na seguinte forma:
2463 = 2 . 1000 + 4 . 100 + 6 . 10 + 3 . 1
Substituindo os multiplicadores por potências de 10 (afinal, a base é 10), temos:
2463 = 2 . 103 + 4 . 102 + 6 . 101 + 3 . 100
(Eq. 1)
Visualizar essa relação é particularmente útil para se efetuar a conversão de um número
em qualquer base para a base 10, ou seja, quando se quer encontrar o equivalente em
decimal de um número expresso numa base qualquer.
Generalizando a equação Eq. 1 acima, podemos afirmar que um número qualquer de n
dígitos d numa base b tem o seu equivalente decimal N expresso por:
N = dn . bn-1 + dn-1 . bn-2 + dn-2 . bn-3 + ......... + d2 . b1 + d1 . b0
(Eq. 2)
13
CONVERSÃO ENTRE BASES
CONVERSÃO DE QUALQUER BASE PARA DECIMAL (cont.)
Assim, de binário (base 2) para decimal (base 10), podemos fazer, por exemplo:
(100101)2 = 1 . 25 + 0 . 24 + 0 . 23 + 1 . 22 + 0 . 21 + 1 . 20 = 32 + 0 + 0 + 4 + 0 + 1 = 37
(110,10)2 = 1 . 22 + 1 . 21 + 0 . 20 + 1 . 2-1 + 0 . 2-2 = 4 + 2 + 0 + 0,5 + 0 = 6,5
E de octal (base 8) para decimal:
(473)8 = 4 . 82 + 7 . 81 + 3 . 80 = 256 + 56 + 3 = 315
(115,2)8 = 1 . 82 + 1 . 81 + 5 . 80 + 2 . 8-1 = 64 + 8 + 5 + 0,25 = 77,25
Finalmente, de hexadecimal (base 16) para decimal:
(B108)16 = B . 163 + 1 . 162 + 0 . 161 + 8 . 160 = 45056 + 256 + 0 + 8 = 45320
(F0,1)16 = F . 161 + 0 . 160 + 1 . 16-1 = 240 + 0 + 0,0625 = 240,0625
7D2h = 7 . 162 + D . 161 + 2 . 160 = 7 . 256 + 13 . 16 + 2 . 1 = 1792 + 208 + 2 = 2002
14
CONVERSÃO ENTRE BASES
CONVERSÃO DE DECIMAL PARA UMA BASE QUALQUER
Para conversão de um número na base 10 para outra base, utilizamos o método das
divisões sucessivas
parte inteira: divide-se o número a ser convertido pela base desejada; toma-se o
quociente resultante e divide-se novamente pela base até que o quociente seja zero; os
restos das divisões formam a parte inteira do número convertido; o primeiro resto
representa o último dígito (menos significativo) da parte inteira do número e o último
quociente representa o primeiro dígito (mais significativo) da parte inteira;
parte fracionária: multiplica-se a parte fracionária do número a ser convertido pela base
desejada; toma-se a parte fracionária do número resultante e repete-se a operação; a
parte inteira dos produtos obtidos representam a parte fracionária do número procurado.
Exemplo 1: Converter o número decimal 29 para binário.
29
2
1 14
Portanto, 29d = 11101b
2
0 7
2
1 3
2
1
1
15
CONVERSÃO ENTRE BASES
CONVERSÃO DE DECIMAL PARA UMA BASE QUALQUER (cont.)
Exemplo 2: Converter o número decimal 174,25 para binário.
174
2
0 87
0,25 x 2 = 0,50
0,50 x 2 = 1,00
2
1 43
2
1 21
2
Parte fracionária:
01
1 10 2
Parte inteira:
10101110
0
5
2
1
2
2
0
1
Portanto, (174,25)10 = (10101110,01)2
16
CONVERSÃO ENTRE BASES
CONVERSÃO DE DECIMAL PARA UMA BASE QUALQUER (cont.)
Exemplo 3: Converter o número decimal 749,97 para octal.
749
8
5 93 8
5 11 8
Parte inteira:
1355
3 1
0,97 x 8 = 7,76
0,76 x 8 = 6,08
0,08 x 8 = 0,64
0,64 x 8 = 5,12
0,12 x 8 = 0,96
Parte fracionária:
76050
Portanto, (749,97)10 = (1355,76050)8
Exemplo 4: Converter o número decimal 155,742 para hexadecimal.
155
11
16
9
Parte inteira:
9B
0,742 x 16 = 11,872
0,872 x 16 = 13,952
0,952 x 16 = 15,232
0,232 x 16 = 3,712
Portanto, (155,742)10 = (9B,BDF3)16
Parte fracionária:
BDF3
17
CONVERSÃO ENTRE BASES
CONVERSÃO DE DECIMAL PARA UMA BASE QUALQUER (cont.)
Outra forma mais prática de se fazer a conversão de base 10 para base 2 consiste em
“ligar” os bits (fazendo-os igual a 1) correspondentes aos valores das potências de 2 que
somados dão o número na base 10.
Exemplo 5: Converter o número decimal 29 para binário.
Em primeiro lugar, devemos encontrar a quantidade de dígitos binários (bits) que terá o número
resultante da conversão. Sabemos que com 4 bits é possível representar números de 0 a 15 (pois 24 =
16, e que com 5 bits é possível representar números de 0 a 31 (pois 25 = 32). Assim, para
representarmos o número 29, precisaremos de 5 bits. Então teremos:
Valor
16
8
4
2
1
Potência
24
23
22
21
20
BIT
1
1
1
0
1
Portanto, (29)10 = 111012
Agora vamos aos bits, começando pela esquerda
(bit mais significativo):
- 16 “cabe” em 29, então “ligamos” o bit do 24
e subtraímos 16 de 29 = 13
- 8 “cabe” em 13, então “ligamos” o bit do 23 e
subtraímos 8 de 13 = 5
- 4 “cabe” em 5, então “ligamos” o bit do 22 e
subtraímos 4 de 5 = 1
- 1 “não cabe” em 2, então “não ligamos” o bit
do 21 e não subtraímos nada
- 1 “cabe” em 1, então “ligamos” o bit do 20 e
subtraímos 1 de 1 = 0... FIM
18
CONVERSÃO ENTRE BASES
TABELA DE CONVERSÃO
DECIMAL
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BINÁRIO
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
OCTAL
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
HEXADECIMAL
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
19
CONVERSÃO ENTRE BASES
CONVERSÃO DE BINÁRIO PARA OCTAL
Para converter um número na base 2 para a base 8, deve-se separar o número em grupos
de 3 dígitos, partindo-se da vírgula, ou apenas da direita para a esquerda no caso de
números inteiros. Caso faltem símbolos para completar três, completa-se com zeros. Em
seguida, deve-se converter cada conjunto de três símbolos binários em um octal, de
acordo com a tabela anterior.
Exemplo 6: Converter o número binário (010101,1101)2 para octal.
010 101,110 100
2
5
6
Portanto, (010101,1101)2 = (25,64)8
4
Exemplo 7: Converter 10011101000110b para octal
010 011 101 000 110
2
3
5
0
6
Portanto, 10011101000110b = (23506)8
20
CONVERSÃO ENTRE BASES
CONVERSÃO DE BINÁRIO PARA HEXADECIMAL
Para converter um número na base 2 para a base 16, deve-se separar o número em
grupos de 4 dígitos, partindo-se da vírgula, ou apenas da direita para a esquerda no caso
de números inteiros. Caso faltem símbolos para completar quatro, completa-se com zeros.
Em seguida, deve-se converter cada conjunto de quatro símbolos binários em um
hexadecimal, de acordo com a tabela anterior.
Exemplo 8: Converter o número binário 110110100100,101011 para hexadecimal.
1101 1010 0100,1010 1100
D
A
4
A
C
Portanto, (110110100100,101011)2 = (DA4,AC)16
Exemplo 9: Converter 10011101001110b para hexadecimal
0010 0111 0100 1110
2
7
4
E
Portanto, 10011101001110b = 274Eh
21
CONVERSÃO ENTRE BASES
CONVERSÃO DE OCTAL PARA BINÁRIO
Para converter um número na base 8 para a base 2, basta converter individualmente cada
dígito octal no seu correspondente conjunto de três dígitos binários, de acordo com a
tabela anterior.
Exemplo 10: Converter o número octal (25,64)8 para binário.
2
5 , 6
4
Portanto, (25,64)8 = (10101,1101)2
010 101,110 100
Exemplo 11: Converter 23506 em octal para binário.
2
3
5
0
6
010 011 101 000 110
Portanto, (23506)8 = 10011101000110b
22
CONVERSÃO ENTRE BASES
CONVERSÂO DE HEXADECIMAL PARA BINÁRIO
Para converter um número na base 16 para a base 2, basta converter individualmente
cada dígito hexadecimal no seu correspondente conjunto de quatro dígitos binários, de
acordo com a tabela anterior.
Exemplo 12: Converter o número hexadecimal (DA4,AC)16 para binário.
D
A
4
, A
C
1101 1010 0100,1010 1100
Portanto, (DA4,AC)16 = (110110100100,101011)2
Exemplo 13: Converter 274E em hexadecimal para binário.
2
7
4
E
0010 0111 0100 1110
Portanto, 274Eh = 10011101001110b
23
CONVERSÃO ENTRE BASES
CONVERSÂO ENTRE HEXADECIMAL E OCTAL
Para converter um número entre as bases 8 e 16, ou vice-versa, é mais conveniente que a
conversão seja feita em duas etapas, convertendo-se primeiramente o número original
para a base binária, e a seguir o seu correspondente binário para a base desejada.
Exemplo 14: Converter o número hexadecimal (DA4,AC)16 para octal.
D
A
4
, A
C
1101 1010 0100,1010 1100
(DA4,AC)16 = (110110100100,101011)2
110 110 100 100,101 011
6
6
4
4 , 5
3
Portanto, (DA4,AC)16 = (6644,53)8
Exemplo 15: Converter o número octal (23506)8 para hexadecimal.
2
3
5
0
6
010 011 101 000 110
0010 0111 0100 0110
2
7
4
6
(23506)8 = 10011101000110b
Portanto, (23506)8 = (2746)16
24
ARITMÉTICA BINÁRIA
ADIÇÃO DE NÚMEROS BINÁRIOS
A operação de soma de dois números em base 2 é efetuada de modo semelhante à soma decimal,
levando-se em conta que só há dois algarismos disponíveis (0 e 1).
Do mesmo modo que operamos na base decimal, a soma é efetuada algarismo por algarismo, de maneira
que, quando somamos 1 com 1, obtemos como algarismo resultante 0 e sobra o valor 1 para ser somado
aos algarismos da parcela imediatamente seguinte à esquerda (valor de uma base: 2); esse é o valor que
denominamos "vai 1".
Assim:
0+0=
0+1=
1+0=
1+1=
1+1+
0
1
1
0, com "vai 1“
1 = 1, com “vai 1”
Exemplo
1
1
1
1
1
1
1 0 1 1 0 1 , 0 1
+ 1 0 0 1 1 1 , 1 1
1 0 1 0 1 0 1 , 0 0
25
ARITMÉTICA BINÁRIA
SUBTRAÇÃO DE NÚMEROS BINÁRIOS
A subtração em base 2, na forma convencional usada também no sistema decimal
(minuendo - subtraendo = diferença), é relativamente mais complicada por dispormos
apenas dos algarismos 0 e 1. Assim, 0 menos 1 necessita de um "empréstimo" de um valor
igual à base (que no caso é 2), obtido do primeiro algarismo diferente de zero, existente à
esquerda.
Assim:
0-0=
1-0=
1-1=
0-1=
Exemplo
0
1
0
1, com “empréstimo de 2“
0–0=0
0 – 1 não é possível. Retira-se 1 da ordem
à esquerda, que fica com zero e passa-se
2 para a direita. Logo 2 – 1 = 1
0–0=0
1–1=0
0 2
1–1=0
1
0 2 2
1 0 0 1 1 0 0 0 1
- 0 1 0 1 0 1 1 0 1
0 1 0 0 0 0 1 0 0
0–0=0
0 – 1 não é
possível. Retira-se 1
da 5a ordem, a
partir da direita,
ficando 2 unidades
na 4a ordem.
Dessas 2 unidades,
retira-se 1 para a 3a
ordem (nesta 3a
ordem ficam, então,
2), restando 1 nesta
4a ordem. Logo 2-1
= 1.
1–1=0
0–0=0
26
ARITMÉTICA BINÁRIA
SUBTRAÇÃO DE NÚMEROS BINÁRIOS (cont.)
Métodos mais interessantes de se efetuar a subtração de números binários envolvem o
conceito de que uma subtração nada mais é que a soma de um número de sinal negativo.
De fato, sabemos que, na aritmética decimal, dizer que 10 – 3 = 7 é o mesmo que dizer que
10 + (-3) = 7. Assim, temos que considerar a utilização de números binários negativos, os
quais podem ser representados de várias formas:
Sinal Magnitude: escolhe-se o último bit à esquerda de uma sequência para ser o bit de
sinal. Quando este bit de sinal for 0 o número será positivo, e quando for 1 será negativo.
Uma sequência de 4 bits, ao invés de representar os números de 0 a 15, representará os
números de -7 a +7. A representação do número - 5, p. ex., será 1101 (onde 1 é o “-” e 101
é a representação de 5 com 3 bits).

Complemento de um: Permanece o bit de sinal. Quando o número for positivo, será
representado normalmente, começando por 0. O seu negativo é formado pela inversão de
todos os seus bits. Uma sequência de 4 bits, ao invés de representar os números de 0 a 15,
representará os números de -7 a +7. A representação do número - 5, p. ex., será 1010 (já
que a representação de 5 com 4 bits é 0101).

Complemento de dois: Permanece o bit de sinal. Quando o número for positivo, será
representado normalmente, começando por 0. Para se obter a sua representação negativa
deve-se fazer o complemento de 1, como já visto, e somar 1 ao resultado, Uma sequência
de 4 bits, ao invés de representar os números de 0 a 15, representará os números de -8 a
+7. A representação do número - 5, p. ex., será 1011 (já que a representação de 5 com 4
bits é 0101, e seu complemento de 1 é 1010).

27
ARITMÉTICA BINÁRIA
SUBTRAÇÃO DE NÚMEROS BINÁRIOS
(cont.)
Considerações:
1.
2.
3.
4.
5.
6.
Representações de números positivos e
negativos numa sequência de 4 bits
O número de bits para representação é variável e
determinado no projeto do computador.
A faixa de representação em sinal magnitude e em
complemento de 1 para uma sequência de n bits é a
mesma, possuindo 2n valores, entre -(2n-1-1) e +(2n-1-1).
Tanto na representação em sinal magnitude quanto em
complemento de 1 existem duas representações para o
zero.
A faixa de representação em complemento de 2 para
uma sequência de n bits possui 2n valores, entre -2n-1 e
+(2n-1-1).
Na representação em complemento de 2 existe uma
única representação para o zero, abrindo espaço para a
representação de um número negativo adicional (-2n-1).
A principal vantagem do uso do complemento é a
realização de subtrações pelo processo da adição (mais
tarde veremos que o processador trabalha desta forma,
utillizando a representação em complemento de 2).
28
ARITMÉTICA BINÁRIA
MULTIPLICAÇÃO DE NÚMEROS BINÁRIOS
O processo de multiplicação é realizado na forma usualmente efetuada para a base 10, isto
é, somas sucessivas, porém de forma muito mais simples, visto que os algarismos do
multiplicador somente podem ser 0 ou 1.
Assim, temos:
0x0=0
0x1=0
1x0=0
1x1=1
1
X
1
0 0
1 0 1
1 1 0
0
1
0
0
1
1
1 1
0 1
1 1
0
1 1
Na prática podemos observar que a multiplicação de números binários consiste numa série de
deslocamentos e somas, e é exatamente dessa forma que funciona o algaritmo de
multiplicação de um computador.
29
ARITMÉTICA BINÁRIA
DIVISÃO DE NÚMEROS BINÁRIOS
Como nas demais operações aritméticas, a divisão binária é efetuada de modo semelhante à
divisão decimal, considerando-se apenas que:
0/1=0
1/1=1
e que a divisão por zero acarreta erro.
1 0 0
- 1 0
0 1
- 1
0
-
0
1
1
0
1
1
0
1 1 1 0 1
0 0 0 1 1 1
1
1
0 1
0 1
0 0
1 0 0
- 1 1
0 1
- 1
0
1 0 1 1
0 0 1 1 0
1
1
0 0
Outro método que pode ser utilizado é através de sucessivas subtrações, um processo mais
simples de implementação em circuitos digitais. Nesse caso, o desejado quociente será a
quantidade de vezes que o divisor poderá ser subtraído do dividendo, até que se obtenha
um dividendo igual a zero.
30
REPRESENTAÇÃO EM PONTO FLUTUANTE
Representação em Ponto Flutuante:
Consideremos o número 57,683 usado acima como exemplo. Este número pode ser também expresso como 57,683 x
100. E também poderia ser expresso com 57683 x 10-3 ou ainda 0,57683 x 102. Na realidade, qualquer número inteiro ou fracionário - pode ser expresso neste formato número x base expoente, em que variamos duas coisas: a
posição da vírgula (que delimita a parte fracionária) e a potência à qual elevamos a base.
Essa representação é denominada representação em ponto flutuante, pois o ponto varia sua posição,
modificando, em conseqüência, o valor representado.
Representação Normalizada:
Na representação normalizada, o número é preparado movendo a vírgula para a direita ou para a esquerda de forma
que o número seja menor que 1, o mais próximo possível de 1, obviamente multiplicado por uma potência da base de
forma a manter o valor do número. Em geral, isso significa que o primeiro dígito significativo seguirá imediatamente
ao ponto (ou vírgula).
Por exemplo:
57,68310 --> normalizando ==> 0,57683 x 102
0,000462810 --> normalizando ==> 0,4628 x 10-3
0,000010112 --> normalizando ==> 0,1011 x 10-4
De forma genérica, podemos representar a forma normalizada:
± número x base ±expoente
A parte do número representado dessa forma normalizada (os algarismos significativos), damos o
nome de mantissa.e portanto podemos representar:
± 0,M x B ± e

onde M é a mantissa, B é a base e e é o expoente.
31
ANALÓGICO x DIGITAL
SISTEMAS DIGITAIS
Em palavras bem simples um Sistema Digital (SD) é um transformador que processa determinadas
ENTRADAS e obtém determinadas SAÍDAS.
Exemplo de sistemas em geral : fábricas, corpo humano, um programa numa linguagem de
programação qualquer, etc... (não são exemplos de sistema digitais, apenas sistemas!)
Para o sistema ser considerado DIGITAL devemos acrescentar restrições às Entradas e as Saídas. As
entradas e saídas devem ser informações DISCRETAS.
Um SD caracteriza-se por manipular informações discretas. O que são informações discretas? Os
dígitos, as letras do alfabeto, etc...
Contra-exemplo : Temperatura. A temperatura ambiente é uma informação contínua no tempo,
também dita ANALÓGICA.
O termo DIGITAL é utilizado porque os primeiros computadores foram utilizados maciçamente em
computações numéricas que, obviamente, envolveu e por isto o termo DIGITAL. O computador
digital que nós conhecemos é um bom exemplo de um SD.
Como são representadas as entradas e saídas do SD? Nos SD dizemos que temos um SINAL na
entrada do nosso sistema (ou vários) e um sinal (ou vários) na saída.
Estes sinais, em computadores correspondem a grandezas físicas elétricas,
principalmente TENSÃO.
Download