Introdução à Computação

Propaganda
A Informação e sua Representação
(Parte I)
DSC/CEEI/UFCG
A Informação e sua Representação
 Em um computador são armazenados e
processados apenas dados e instruções.
 Um computador executa operações sobre dados
numéricos (os números) ou alfabéticos (letras e
símbolos).
 É preciso definir uma forma de representar os
dados, codificados em uns e zeros, que possam
ser interpretados pelo computador, de forma
correta e eficiente (com bom desempenho e pouco
consumo de memória).
DSC/CEEI/UFCG
2
A Informação e sua Representação
Os dados podem ser:
 Alfabéticos
– letras, números e símbolos (codificados em ASCII e
EBCDIC)
 Numéricos
– ponto fixo, números inteiros
– ponto flutuante (números reais ou fracionários)
– BCD (representação decimal codificada em binário)
 Lógicos
– Variáveis que possuem apenas dois valores para
representação (FALSO e VERDADEIRO).
DSC/CEEI/UFCG
3
Representação de Números Inteiros
 Todos os dados numéricos são representados em
um computador como uma seqüência de 0s e 1s.
 Os números podem ser positivos ou negativos. As
operações aritméticas, em particular a subtração,
podem originar resultados negativos.
 Um aspecto primordial a ser definido seria então
como representar o sinal.
 Como é que um computador sabe que um dado
número é negativo?
DSC/CEEI/UFCG
4
Representação de Números Inteiros
 A resposta a esta pergunta é que isso depende da
convenção usada na representação de números.
 As convenções mais usuais são as seguintes :
 Representação
de grandeza com sinal
(sinal e magnitude)
 Representação em complemento de 2
Outras formas de representação:
Complemento de 1: para negar o valor de um número deve-se inverter
os bits do sinal (obsoleta) e Excesso de 2m-1: representação do número
é dada pela soma de seu valor absoluto com 2m-1. Exemplo: Um sistema
de 8 bits é chamado de excesso de 128 e um número é armazenado
com seu valor real somado a 128. Ex.:-3=011111012 (-3+128=125)
DSC/CEEI/UFCG
5
Representação de grandeza com sinal
 O bit mais significativo representa o sinal:
• 0 (indica um número positivo)
• 1 (indica um número negativo)
 Os demais bits representam a grandeza (magnitude).
sinal
magnitude
 O valor dos bits usados para representar a magnitude
independe do sinal (sendo o número positivo ou negativo,
a representação binária da magnitude será a mesma).
Exemplos: (8 bits)
DSC/CEEI/UFCG

001010012 = +4110

101010012 = - 4110
6
Representação de grandeza com sinal
Exemplos: (8 bits)
Valor decimal
Valor binário com 8 bits
(7 + bit de sinal)
+9
00001001
-9
10001001
+127
01111111
-127
11111111
Assim, uma representação em binário com n bits teria disponível para a
representação do número n-1 bits (o bit mais significativo representa o
sinal).
DSC/CEEI/UFCG
7
Representação de grandeza com sinal
 Apresenta uma grande desvantagem: ela exige
um grande número de testes para se realizar uma
simples soma de dois números inteiros.

Requer que na UAL existam dois circuitos distintos
para a adição e a subtração.
 Existem duas representações para o zero.
DSC/CEEI/UFCG
8
Representação em complemento de 2

Representação de números inteiros positivos
 igual à representação de grandeza com sinal.

Representação de números inteiros negativos
 mantém-se os bits menos significativos da direita para a
esquerda até à ocorrência do primeiro bit igual a 1
(inclusive), sendo os bits restantes complementados de 1.
 Esta operação equivale a realizar: complemento de 1 + 1.
Exemplo : (8 bits)
DSC/CEEI/UFCG
Exemplo : (8 bits)
000011002 = +1210
001010012 = +4110
11110100c2 = -1210
11010111c2 = -4110
9
Representação em complemento de 2
 Exemplo:
Números inteiros codificados em
binário de 8 bits em um sistema que utiliza
complemento de 2:
(-128, -127, ..., -2. -1, 0, +1, +2,..., +127)
{10000000, 10000001, ..., 11111110, 11111111,
00000000, 00000001, 00000010, ..., 01111111}
 Bit mais significativo
informação de sinal
(0 = positivo e 1 = negativo)
DSC/CEEI/UFCG
10
Representação em complemento de 2
DSC/CEEI/UFCG

Requer um só circuito (somador) para fazer a
adição e a subtração.

Há apenas uma representação para o valor 0
(disponibilidade para mais uma representação) mais um número negativo pode ser representado
(para 8 bits, pode-se representar o número –12810
 100000002) .

A quantidade de números positivos é diferente da
quantidade de números negativos.
11
Representação de Números Inteiros
Exemplo:
Escreva os números decimais abaixo nas seguintes
representações: sinal e magnitude; representação em
complemento de 1; representação em complemento
de 2 e excesso de 128 (utilizando 8 bits, se existir
representação).
a) -1
b) –20
c) –127
d) –128
DSC/CEEI/UFCG
12
Representação de Números Inteiros
Números negativos de 8 bits expressos em 4 sistemas diferentes
N
N
-N
-N
-N
-N
(decimal)
(binário)
(sinalmagnitude)
(complemento de 1)
(complemento de 2)
(excesso de
128)
1
00000001
10000001
11111110
11111111
01111111
2
00000010
10000010
11111101
11111110
01111110
3
00000011
10000011
11111100
11111101
01111101
4
00000100
10000100
11111011
11111100
01111100
10
00001010
10001010
11110101
11110110
01110110
20
00010100
10010100
11101011
11101100
01101100
100
01100100
11100100
10011011
10011100
00011100
127
01111111
11111111
10000000
10000001
00000001
Não existe
representação
Não existe
representação
10000000
00000000
128
DSC/CEEI/UFCG
13
Representação de Números Reais
 Em alguns tipos de cálculo, a faixa de variação dos
números envolvidos é muito grande.
 Exemplo:
–
–
–
–
1) Massa do elétron - da ordem de 9 x 10-28 gramas
2) Massa do Sol - aproximadamente igual a 2 x 1033 gramas
Faixa de variação: > 1060
Exemplo de representação (34 dígitos à esquerda do ponto
decimal e 28 dígitos à direita do mesmo)
1) 0000000000000000000000000000000000.0000000000000000000000000009
2) 2000000000000000000000000000000000.0000000000000000000000000000
 Como representar esses números no computador?
DSC/CEEI/UFCG
14
Representação de Números Reais
 Forma usual de representação de números reais:
parte inteira, vírgula (ou ponto), parte fracionária.
 Esta representação, embora cômoda para cálculos
no papel, não é adequada para processamento no
computador.
 Exemplo: 45,724
DSC/CEEI/UFCG
15
Representação de Números Reais
 O número 45,724 pode ser expresso como:
• 45,724 x 100
• 45724 x 10-3
• 0,45724 x 102
 É necessário o uso de um sistema de
representação de números no qual a faixa de
variação dos números seja independente do
número de dígitos significativos dos números
representados.
DSC/CEEI/UFCG
16
Representação em Ponto Flutuante
 Uma maneira de separar a faixa de variação dos
números de sua precisão consiste em representá-lo
na notação científica.
n = f x 10e
 f - fração ou significando (ou mantissa)
 e - expoente (inteiro positivo ou negativo)
 Qualquer número (inteiro ou fracionário) pode ser
expresso no formato número x baseexpoente, podendo-se
variar a posição da vírgula e o expoente.
 Denominação (computacional): representação em
ponto flutuante (o ponto varia sua posição,
modificando, em conseqüência, o valor representado).
DSC/CEEI/UFCG
17
Representação em Ponto Flutuante
 Representação pode variar (“flutuar”) a posição
da vírgula, ajustando a potência da base.
 Exemplos:
• 3,14 = 0,314 x 10-1 = 3,14 x 100
• 0,000001= 0,1 x 10-5 = 1,0 x 10-6
• 1941 = 0,1941 x 104 = 1,941 x 103
 A faixa de variação dos números é determinada
pela quantidade de dígitos do expoente e a
precisão é determinada pela quantidade de
dígitos do significando.
DSC/CEEI/UFCG
18
Representação em Ponto Flutuante
 Forma normalizada: usa um único dígito antes da vírgula,
diferente de zero (*).
 Na representação computacional de números em ponto
flutuante, a representação normalizada é, em geral, melhor
que a não-normalizada.
– Forma normalizada: só existe uma forma de representar um
número.
– Forma não normalizada: um mesmo número pode ser
representado de diversas maneiras.
(*) Padrão IEEE 754 para números em ponto flutuante – significando
normalizado – começa com um bit 1, seguido de um ponto (vírgula)
binário e pelo resto do significando (número = ± 1,_ _ ... x 2exp )
Mantissa normalizada - começa com o ponto (vírgula) binário seguido
por um bit 1 e pelo resto da mantissa (bit antes da vírgula igual a zero).
DSC/CEEI/UFCG
19
Representação em Ponto Flutuante
Ilustração:
 No sistema binário:
 110101 = 110,101x23 = 1,10101x25 = 0,0110101x27
 Números armazenados em um computador - os
expoentes serão também gravados na base dois
 Como 310 = 112 e 7=1112
 110,101 x (10)11 = 1,10101x(10)101 =
0,0110101x(10)111
 Representação normalizada - há apenas um “1”
antes da vírgula
 Exemplo: 1,10101x(10)101
DSC/CEEI/UFCG
20
Representação em Ponto Flutuante
Algumas definições:
 No número 1,10101x(10)101:
• 1,10101 = significando
• 101 = expoente
 OBS:
– a base binária não precisa ser explicitada
(o computador usa sempre esta)
– O “1” antes da vírgula, na representação
normalizada – se esta for adotada, também pode
ficar implícito, economizando um bit
(“bit escondido”)
DSC/CEEI/UFCG
21
A Informação e sua Representação
(Parte II)
DSC/CEEI/UFCG
Operações aritméticas –
Sistema Binário

Adição
 Subtração
 Multiplicação
 Divisão
As operações aritméticas nos sistemas binário, octal,
decimal e hexadecimal obedecem a regras similares.
DSC/CEEI/UFCG
23
Adição – Sistema binário
DSC/CEEI/UFCG

Adição
deslocamento à direita na série, cada
deslocamento correspondendo a adição de uma
unidade.

Adição entre dois números de um algarismo
pode-se obter resultados com um ou dois dígitos.

Estouro (maior algarismo é ultrapassado): Carry
(transporte) ou vai-um.
24
Adição – Sistema binário
Regra:
DSC/CEEI/UFCG
25
Subtração – Sistema binário
DSC/CEEI/UFCG

Inversa à adição
deslocamento à esquerda do
minuendo de tantas unidades quantas forem o
subtraendo.

Se o minuendo é menor que o subtraendo ?
Estouro
subtrair uma unidade do minuendo ou
somar uma unidade ao subtraendo da casa
seguinte.

Estouro
borrow (empréstimo) ou vem-um.
26
Subtração – Sistema binário
Regra:
DSC/CEEI/UFCG
27
Outras Operações Aritméticas
Multiplicação – Sistema binário
Regra
00=0
01=0
10=0
11=1
Multiplicação pela base
 Desloca-se os algarismos de um número para a
esquerda ou a sua vírgula para a direita.
DSC/CEEI/UFCG
28
Outras Operações Aritméticas
Divisão – Sistema binário
DSC/CEEI/UFCG

Procedimento igual ao dos decimais, considerandose apenas que: 0/1 = 0 e 1/1 = 1.

Divisão pela Base

Deslocando-se os algarismos de um número para
a direita ou a sua vírgula para a esquerda.
29
A Informação e sua Representação
DSC/CEEI/UFCG

Aritmética em Sinal e Magnitude

Aritmética em Complemento de 2
30
Aritmética em Sinal e Magnitude
Algoritmo para operação aritmética de adição:
 Verificam-se os sinais dos números e efetua-se uma
comparação entre eles.
 Se ambos os números têm o mesmo sinal, somam-se
as magnitudes; o sinal do resultado é o mesmo das
parcelas.
 Se os números têm sinais diferentes:
a) identifica-se a maior das magnitudes e registra-se o
seu sinal;
b) subtrai-se a magnitude menor da maior (apenas as
magnitudes);
c) sinal do resultado é igual ao sinal da maior magnitude.
DSC/CEEI/UFCG
31
Aritmética em Sinal e Magnitude

DSC/CEEI/UFCG
Exemplo: Realize as operações aritméticas a
seguir (em sinal e magnitude). Considere a
palavra de dados com 6 bits.
a) (+13)10 + (+12)10
b) (+18)10 + (-11)10
c) (-21)10 + (+10)10
d) (-17)10 + (-9)10
e) (+17)10 + (+19)10
f) (-17)10 + (-19)10
32
Aritmética em Sinal e Magnitude
Solução:
a) (+13)10 + (+12)10
+13
001101
+18
010010
+12
001100
-11
101011
+25
011001
+7
000111
c) (-21)10 + (+10)10
DSC/CEEI/UFCG
b) (+18)10 + (-11)10
d) (-17)10 + (-9)10
-21
110101
-17
110001
+10
001010
-9
101001
- 11
101011
-26
111010
33
Aritmética em Sinal e Magnitude
Solução:
a) (+17)10 + (+19)10
b) (-17)10 + (-19)10
“vai 1”
“vai 1”
+17
010001
-17
110001
+19
010011
-19
110011
+36
100100
-36
100100
overflow
Estouro (overflow) - existência de um “vai 1” para o bit de sinal.
DSC/CEEI/UFCG
Faixa de representação de valores para 6 bits (em sinal e
magnitude)  -31 a + 31.
34
Aritmética em Sinal e Magnitude
Subtração (Minuendo - Subtraendo = Resultado)
Algoritmo para operação aritmética de subtração:
1. Troca-se o sinal do subtraendo.
2. Procede-se como no algoritmo da adição.
DSC/CEEI/UFCG
35
Aritmética em Sinal e Magnitude

Exemplo: Realize as operações aritméticas a
seguir (em sinal e magnitude). Considere a
palavra de dados com 6 bits.
a) (-18)10 - (+12)10
b) (-27)10 - (-14)10
c) (+27)10 - (+31)10
d) (+19)10 - (-25)10
DSC/CEEI/UFCG
36
Aritmética em Sinal e Magnitude
Solução:
a) (-18)10 - (+12)10
-1210
-18
110010
-27 111011
-12
101100
+14
-30
111110
-13 101101
c) (+27)10 - (+31)10 -3110
DSC/CEEI/UFCG
b) (-27)10 - (-14)10
+27
011011
-31
111111
-4
100100
vai 1
overflow
+1410
001110
d) (+19)10 - (-25)10 +2510
+19
010011
+25
011001
+44
101100
37
Aritmética em Sinal e Magnitude

DSC/CEEI/UFCG
O problema encontrado pelos fabricantes de
computadores na implementação da ULA (Unidade
Lógica e Aritmética) que efetuasse operações
aritméticas com valores representados em sinal e
magnitude residiu, principalmente, em dois fatores:
custo e velocidade.

Custo - necessidade de construção de dois
elementos, um para efetuar somas e outro para
efetuar subtração (dois componentes eletrônicos).

Velocidade - ocasionada pela perda de tempo gasto
na manipulação dos sinais, de modo a determinar o
tipo de operação e o sinal do resultado.
38
Aritmética em Sinal e Magnitude
DSC/CEEI/UFCG

Outro inconveniente: dupla representação para o
zero , o que requer um circuito lógico específico para
evitar erros de má interpretação.

Sistemas modernos não empregam aritmética em
sinal e magnitude, a qual foi definitivamente
substituída pela aritmética em complemento de 2
(no caso de representação em ponto fixo).
39
Aritmética em Complemento de 2
Algoritmo para operação aritmética de adição:
1. Somar os dois números, bit a bit, inclusive o bit de sinal.
2. Desprezar o último “vai 1” (para fora do número), se
houver.
3. Se, simultaneamente, ocorrer “vai 1” para o bit de sinal e
“vai 1” para fora do número, ou se ambos não ocorrerem,
o resultado está correto.
4. Se ocorrer apenas um dos dois “vai 1” (ou para o bit de
sinal ou para fora), o resultado está incorreto. Ocorreu um
overflow.
DSC/CEEI/UFCG
 O overflow somente pode ocorrer se ambos os números
tiverem o mesmo sinal (seja positivo ou ambos negativos) e,
nesse caso, se o sinal do resultado for oposto ao dos
números.
40
Aritmética em Complemento de 2
Algoritmo para operação aritmética de subtração:
1. Complementar a 2 o subtraendo, independentemente
se é um valor positivo ou negativo.
2. Somar os números, utilizando o algoritmo da adição já
mostrado anteriormente.
DSC/CEEI/UFCG
41
Aritmética em Complemento de 2

DSC/CEEI/UFCG
Exemplo: Realize as operações aritméticas a
seguir (em complemento de 2). Considere a
palavra de dados com 6 bits.
a) (+13)10 + (+15)10
b) (+23)10 + (+20)10
c) (+15)10 + (-13)10
d) (+20)10 - (+17)10
e) (-24)10 - (-15)10
f) (-24)10 - (+15)10
42
Aritmética em Complemento de 2
Solução:
a) (+13)10 + (+15)10
b) (+23)10 + (+20)10
001111
+13
001101
+23
010111
+15
001111
+20
010100
+28
011100
+43
101011
Resultado correto - não
houve “vai 1” nem para o
bit de sinal nem para fora
do número.
DSC/CEEI/UFCG
010100
Resultado incorreto - houve “vai
1” apenas para o bit de sinal.
Overflow - faixa de representação
para 6 bits (-32 a 31)
43
Aritmética em Complemento de 2
Solução:
c) (+15)10 + (-13)10
d) (+20)10 - (+17)10
111111
111100
+15
001111
+20
010100
-13
110011
-17
101111
+2
000010
+3
000011
Resultados corretos - houve “vai 1”
para o bit de sinal e para fora do
número; este é desprezado.
DSC/CEEI/UFCG
44
Aritmética em Complemento de 2
Solução:
e) (-24)10 - (-15)10
f) (-24)10 - (+15)10
001000
-24
101000
-24
101000
+15
001111
-15
110001
-9
110111
-39
011001
Resultado correto - não
houve “vai 1” para o bit de
sinal nem para fora do
número.
DSC/CEEI/UFCG
100000
Resultado incorreto - houve “vai
1” apenas para fora do número.
Overflow - faixa de representação
para 6 bits (-32 a 31)
45
Aritmética em Complemento de 2
Resumindo, é importante lembrar que:



As operações de adição e subtração são
normalmente realizadas como adição.
As operações de subtração são realizadas como
soma de complemento (minuendo mais o
complemento do subtraendo).
Se o resultado encontrado é um valor positivo:
 o valor decimal correspondente da magnitude é obtido por
pura conversão de base 2 para base 10.

Se o resultado encontrado é um valor negativo:

DSC/CEEI/UFCG
O valor está representado em complemento de 2.
46
Aritmética em Complemento de 2

A aritmética em complemento de 2 requer apenas
um componente (somador) para somar dois
números e um componente que realize a operação
de complementação.

O algoritmo básico refere-se, então, à soma dos
números, considerando-se que os números
negativos estejam representados em complemento
de 2; ele acusa, também, se o resultado ultrapassar
a quantidade de bits representáveis na ULA,
overflow.
Pode-se efetuar a multiplicação através de sucessivas somas e
a divisão através de sucessivas subtrações (processo lento!).
DSC/CEEI/UFCG
47
Operações aritméticas –
Sistema Binário
Observação:
DSC/CEEI/UFCG

A multiplicação em computadores pode ser feita
por um artifício:
 para multiplicar um número A por n, basta
somar A com A, n vezes.
 Por exemplo, 4 x 3 = 4 + 4 + 4.

A divisão também pode ser feita por subtrações
sucessivas!

O que concluímos? Uma operação aritmética
pode ser realizada em computadores apenas
através de somas (diretas ou em complemento)!
48
Download