Download - A Informação e sua Representação (Parte I)
DSC/CEEI/UFCG
A Informação e sua A Informação e sua RepresentaçãoRepresentação
(Parte I)(Parte I)
2DSC/CEEI/UFCG
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).
A Informação e sua A Informação e sua RepresentaçãoRepresentação
3DSC/CEEI/UFCG
Os dados podem ser:Os dados podem ser:
AlfabéticosAlfabéticos– letras, números e símbolos (codificados em ASCII e
EBCDIC)
Numéricos Numéricos – ponto fixo, números inteiros– ponto flutuante (números reais ou fracionários)– BCD (representação decimal codificada em binário)
LógicosLógicos– Variáveis que possuem apenas dois valores para
representação (FALSO e VERDADEIRO).
A Informação e sua A Informação e sua RepresentaçãoRepresentação
4DSC/CEEI/UFCG
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 é Como é que um computador sabe que um dado número é negativo?negativo?
Representação de Números Representação de Números InteirosInteiros
5DSC/CEEI/UFCG
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 Representação de grandeza com sinal (sinal e magnitude)(sinal e magnitude)
Representação em complemento de 2Representação em complemento de 2
Representação de Números Representação de Números InteirosInteiros
Outras formas de representação:Outras formas de representação:
Complemento de 1Complemento de 1: para negar o valor de um número deve-se inverter os bits do sinal (obsoleta) e Excesso de 2Excesso de 2m-1m-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)
6DSC/CEEI/UFCG
Representação de grandeza com Representação de grandeza com sinalsinal O bit mais significativo representa o sinal:
• 00 (indica um número positivonúmero positivo)• 1 1 (indica um número negativonúmero negativo)
Os demais bits representam a grandeza grandeza (magnitude)(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)
001010012 = +4110
101010012 = - 4110
magnitudesinal
7DSC/CEEI/UFCG
11111111 -127
01111111 +127
10001001 -9
00001001 +9
Valor binário com 8 bits Valor binário com 8 bits (7 + bit de sinal)(7 + bit de sinal)
Valor decimalValor decimal
ExemplosExemplos:: (8 bits) (8 bits)
Assim, uma representação em binário com nn bits teria disponível para a representação do número n-1 bits (o bit mais significativo representa o sinal).
Representação de grandeza com Representação de grandeza com sinalsinal
8DSC/CEEI/UFCG
Apresenta uma grande desvantagemdesvantagem: 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 duasduas representações representações para o zero.
Representação de grandeza com Representação de grandeza com sinalsinal
9DSC/CEEI/UFCG
Exemplo : (8 bits)
001010012 = +4110
11010111c2 = -4110
Representação em complemento Representação em complemento de 2de 2
Exemplo : (8 bits)
000011002 = +1210
11110100c2 = -1210
Representação de números inteiros positivos Representação de números inteiros positivos igual à representação de grandeza com sinal.
Representação de números inteiros negativosRepresentaçã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.
10DSC/CEEI/UFCG
ExemploExemplo: Números inteiros codificados em binário de 8 bitsbinário de 8 bits em um sistema que utiliza complemento de 2:
(-128, -127, ..., -2. -1, 0, +1, +2,..., +127)(-128, -127, ..., -2. -1, 0, +1, +2,..., +127)
{10000000, 10000001, ..., 11111110, 11111111, {10000000, 10000001, ..., 11111110, 11111111, 00000000, 00000001, 00000010, ..., 01111111}00000000, 00000001, 00000010, ..., 01111111}
Bit mais significativo informação de sinal (0 = positivo e 1 = negativo)
Representação em complemento Representação em complemento de 2de 2
11DSC/CEEI/UFCG
Requer um só circuitoum só circuito (somador) para fazer a adição e a subtração.
Há apenas uma representação para o valor 00 (disponibilidade para mais uma representação)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 é diferentediferente da quantidade de números negativos.
Representação em complemento Representação em complemento de 2de 2
12DSC/CEEI/UFCG
ExemploExemplo:
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
Representação de Números Representação de Números InteirosInteiros
13DSC/CEEI/UFCG
Números negativos de 8 bits expressos em 4 sistemas diferentes
Representação de Números Representação de Números InteirosInteiros
N(decimal)
N(binário)
-N(sinal-
magnitude)
-N(comple-
mento de 1)
-N(comple-
mento de 2)
-N(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
128 Não existe represen-
tação
Não existe represen-
tação
10000000 00000000
14DSC/CEEI/UFCG
Representação de Números ReaisRepresentação de Números Reais
Em alguns tipos de cálculo, a faixa de variação dos números envolvidos é muito grande.
ExemploExemplo: – 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)
Como representar esses números no computador?Como representar esses números no computador?
1) 0000000000000000000000000000000000.0000000000000000000000000009
2) 2000000000000000000000000000000000.0000000000000000000000000000
15DSC/CEEI/UFCG
Representação de Números ReaisRepresentação de Números Reais
Forma usual de representação de números reais: parte inteira, vírgula (ou ponto), parte fracionária.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,724Exemplo: 45,724
16DSC/CEEI/UFCG
Representação de Números ReaisRepresentação de Números Reais
O número 45,72445,724 pode ser expresso como:• 45,724 x 1045,724 x 1000
• 45724 x 1045724 x 10-3-3
• 0,45724 x 100,45724 x 1022
É 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.
17DSC/CEEI/UFCG
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 n = = f f x 10 x 10ee
ff - fração ou significando (ou mantissa) ee - expoente (inteiro positivo ou negativo)
Qualquer número (inteiro ou fracionário) pode ser expresso no formato número x basenúmero x baseexpoenteexpoente, podendo-se variar a posição da vírgula e o expoente.
Denominação (computacional): representação em ponto representação em ponto flutuanteflutuante (o ponto varia sua posição, modificando, em conseqüência, o valor representado).
Representação em Ponto Representação em Ponto FlutuanteFlutuante
18DSC/CEEI/UFCG
Representação pode variar (“flutuarflutuar”) a posição da vírgula, ajustando a potência da base.
ExemplosExemplos: • 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çãofaixa de variação dos números é determinada pela quantidade de dígitos do expoente e a precisãoprecisão é determinada pela quantidade de dígitos do significando.
Representação em Ponto Representação em Ponto FlutuanteFlutuante
19DSC/CEEI/UFCG
Forma normalizada: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 normalizadaForma normalizada: só existe uma forma de representar um
número.– Forma não normalizadaForma não normalizada: um mesmo número pode ser
representado de diversas maneiras.
Representação em Ponto Representação em Ponto FlutuanteFlutuante
(**) Padrão IEEE 754 para números em ponto flutuante – significando significando normalizadonormalizado – começa com um bit 1, seguido de um ponto (vírgula) binário e pelo resto do significando (número = ± 1,_ _ ... x 2exp )
MantissaMantissa normalizadanormalizada - 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).
20DSC/CEEI/UFCG
Ilustração:Ilustração:
No sistema binário: 110101110101 = 110,101x2110,101x233 = 1,10101x21,10101x255 = 0,0110101x20,0110101x277
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 ExemploExemplo: 1,10101x(10)1,10101x(10)101101
Representação em Ponto Representação em Ponto FlutuanteFlutuante
21DSC/CEEI/UFCG
Representação em Ponto Representação em Ponto FlutuanteFlutuanteAlgumas definições:Algumas definições:
No número 1,10101x(10)101:• 1,10101 = significando• 101 = expoente
OBSOBS:– 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 escondidobit escondido”)
DSC/CEEI/UFCG
A Informação e sua A Informação e sua RepresentaçãoRepresentação
(Parte II)(Parte II)
23DSC/CEEI/UFCG
Operações aritméticas – Operações aritméticas – Sistema BinárioSistema Binário
AdiçãoAdição SubtraçãoSubtração MultiplicaçãoMultiplicação DivisãoDivisão
As operações aritméticas nos sistemas binário, octal, decimal e hexadecimal obedecem a regras similares.
24DSC/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.
Adição – Sistema binárioAdição – Sistema binário
25DSC/CEEI/UFCG
RegraRegra::
Adição – Sistema binárioAdição – Sistema binário
26DSC/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.
Subtração – Sistema binárioSubtração – Sistema binário
27DSC/CEEI/UFCG
RegraRegra::
Subtração – Sistema binárioSubtração – Sistema binário
28DSC/CEEI/UFCG
RegraRegra
0 0 = 00 1 = 01 0 = 01 1 = 1
Outras Operações Aritméticas Outras Operações Aritméticas Multiplicação – Sistema binárioMultiplicação – Sistema binário
Multiplicação pela baseMultiplicação pela base
Desloca-se os algarismos de um número para a esquerda ou a sua vírgula para a direita.
29DSC/CEEI/UFCG
Procedimento igual ao dos decimais, considerando-se apenas que: 0/1 = 0 0/1 = 0 e 1/1 = 1 1/1 = 1.
Divisão pela BaseDivisão pela Base
Deslocando-se os algarismos de um número para a direita ou a sua vírgula para a esquerda.
Outras Operações Aritméticas Outras Operações Aritméticas Divisão – Sistema binárioDivisão – Sistema binário
30DSC/CEEI/UFCG
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
Aritmética em Complemento de 2Aritmética em Complemento de 2
A Informação e sua A Informação e sua RepresentaçãoRepresentação
31DSC/CEEI/UFCG
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
Algoritmo para operação aritmética de adição: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.
32DSC/CEEI/UFCG
ExemploExemplo: 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
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
33DSC/CEEI/UFCG
Solução:Solução:
a) (+13)10 + (+12)10 b) (+18)10 + (-11)10
c) (-21)10 + (+10)10 d) (-17)10 + (-9)10
+13 001101
+12 001100
+25 011001
+18 010010
-11 101011
+ 7 000111
-21 110101
+10 001010
- 11 101011
-17 110001
-9 101001
-26 111010
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
34DSC/CEEI/UFCG
Solução:Solução:
a) (+17)10 + (+19)10 b) (-17)10 + (-19)10
+17 010001
+19 010011
+36 100100
-17 110001
-19 110011
-36 100100
““vai 1”vai 1”
Estouro (overflowoverflow) - existência de um “vai 1” para o bit de sinal.
Faixa de representação de valores para 6 bits (em sinal e magnitude) -31 a + 31.
overflowoverflow
““vai 1”vai 1”
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
35DSC/CEEI/UFCG
Subtração (Minuendo - Subtraendo = Subtração (Minuendo - Subtraendo = Resultado)Resultado)
Algoritmo para operação aritmética de subtração: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.
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
36DSC/CEEI/UFCG
ExemploExemplo: 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
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
37DSC/CEEI/UFCG
Solução:Solução:
a) (-18)10 - (+12)10 b) (-27)10 - (-14)10
c) (+27)10 - (+31)10 d) (+19)10 - (-25)10
-18 110010
-12 101100
-30 111110
-27 111011
+14 001110
-13 101101
+27 011011
-31 111111
- 4 100100
+19 010011
+25 011001
+44 101100
-1210 +1410
-3110 +2510
overflowoverflow
vai 1vai 1
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
38DSC/CEEI/UFCG
O problema encontrado pelos fabricantes de computadores na implementação da ULA 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 custo e velocidade velocidade.
CustoCusto - necessidade de construção de dois elementos, um para efetuar somas e outro para efetuar subtração (dois componentes eletrônicos).
VelocidadeVelocidade - 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.
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
39DSC/CEEI/UFCG
Outro inconveniente: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 2aritmética em complemento de 2 (no caso de representação em ponto fixoponto fixo).
Aritmética em Sinal e MagnitudeAritmética em Sinal e Magnitude
40DSC/CEEI/UFCG
Algoritmo para operação aritmética de adição: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 overflowoverflow. O overflowoverflow 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.
Aritmética em Complemento de Aritmética em Complemento de 22
41DSC/CEEI/UFCG
Algoritmo para operação aritmética de subtração: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.
Aritmética em Complemento de Aritmética em Complemento de 22
42DSC/CEEI/UFCG
ExemploExemplo: 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
Aritmética em Complemento de Aritmética em Complemento de 22
43DSC/CEEI/UFCG
Solução:Solução:
a) (+13)10 + (+15)10 b) (+23)10 + (+20)10
00001111
+13 001101
+15 001111
+28 011100
Resultado corretoResultado correto - não houve “vai 1” nem para o bit de sinal nem para fora do número.
01010100
+23 010111
+20 010100
+43 101011
Resultado incorretoResultado incorreto - houve “vai 1” apenas para o bit de sinal.
OverflowOverflow - faixa de representação para 6 bits (-32 a 31)
Aritmética em Complemento de Aritmética em Complemento de 22
44DSC/CEEI/UFCG
Solução:Solução:
c) (+15)10 + (-13)10 d) (+20)10 - (+17)10
11111111
+15 001111
-13 110011
+2 000010
Resultados corretosResultados corretos - houve “vai 1” para o bit de sinal e para fora do número; este é desprezado.
1111100
+20 010100
-17 101111
+3 000011
Aritmética em Complemento de Aritmética em Complemento de 22
45DSC/CEEI/UFCG
Solução:Solução:
e) (-24)10 - (-15)10 f) (-24)10 - (+15)10
00001000
-24 101000
+15 001111
-9 110111
Resultado corretoResultado correto - não houve “vai 1” para o bit de sinal nem para fora do número.
10100000
-24 101000
-15 110001
-39 011001
Resultado incorretoResultado incorreto - houve “vai 1” apenas para fora do número.
OverflowOverflow - faixa de representação para 6 bits (-32 a 31)
Aritmética em Complemento de Aritmética em Complemento de 22
46DSC/CEEI/UFCG
Resumindo, é importante lembrar que: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 positivovalor positivo: o valor decimal correspondente da magnitude é obtido por
pura conversão de base 2 para base 10. Se o resultado encontrado é um valor negativovalor negativo:
O valor está representado em complemento de 2.
Aritmética em Complemento de Aritmética em Complemento de 22
47DSC/CEEI/UFCG
A aritmética em complemento de 2 requer apenas requer apenas um componenteum componente (somadorsomador) para somar dois números e um componenteum componente que realize a operação de complementaçãocomplementaçã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.
Aritmética em Complemento de Aritmética em Complemento de 22
Pode-se efetuar a multiplicação através de sucessivas somas e a divisão através de sucessivas subtrações (processo lento!).
48DSC/CEEI/UFCG
ObservaçãoObservação:
A multiplicação em computadores pode ser feita por um artifício: para multiplicar um número AA por nn, basta somar A A
com AA, nn 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?O que concluímos? UmaUma operação aritmética pode operação aritmética pode ser realizada em computadores apenas através de ser realizada em computadores apenas através de somas (diretas ou em complemento)! somas (diretas ou em complemento)!
Operações aritméticas – Operações aritméticas – Sistema BinárioSistema Binário