fundamentos da informatica - aula 06
TRANSCRIPT
-
8/17/2019 Fundamentos da Informatica - Aula 06
1/33
Fundamentos da Informática
Prof. Gabriel Patzer
Aula 06 – 06/04
-
8/17/2019 Fundamentos da Informatica - Aula 06
2/33
Representação de números
negativos
• Deve-se utilizar uma representação,
utilizando algum dos bits para
identificar números negativos;
• Algumas estratégias:
– Sinal e Magnitude;
– Complemento de 1;
– Complemento de 2;
-
8/17/2019 Fundamentos da Informatica - Aula 06
3/33
Representação de números
negativos
• Outro modo de representar números é
baseado em deslocamento;
• Essa representação é conhecida como
Excesso-N ou Offset Binário;
– O 1º valor (00000000) equivale a –N;
– O valor N em binário equivale a 0 (zero);
Fundamentos da Informática 3 / 4606/04/2016
-
8/17/2019 Fundamentos da Informatica - Aula 06
4/33
Representação de números
negativos
Binário Sem sinal Excesso-7
0000 0 -7
0001 1 -6
0010 2 -5
0011 3 -4
0100 4 -3
0101 5 -2
0110 6 -1
0111 7 0
1000 8 1
1001 9 2
1010 10 3
1011 11 4
1100 12 5
1101 13 6
1110 14 7
1111 15 8
-
8/17/2019 Fundamentos da Informatica - Aula 06
5/33
Representação de números
negativos
Binário Sem sinal Com sinal
0000 0 +0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 -0
1001 9 -1
1010 10 -2
1011 11 -3
1100 12 -4
1101 13 -5
1110 14 -6
1111 15 -7
-
8/17/2019 Fundamentos da Informatica - Aula 06
6/33
Representação de números
negativos
Binário Sem sinal Complemento de 1
0000 0 +0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 -7
1001 9 -6
1010 10 -5
1011 11 -4
1100 12 -3
1101 13 -2
1110 14 -1
1111 15 -0
-
8/17/2019 Fundamentos da Informatica - Aula 06
7/33
Representação de números
negativos
Binário Sem sinal Complemento de 2
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 -8
1001 9 -7
1010 10 -6
1011 11 -5
1100 12 -4
1101 13 -3
1110 14 -2
1111 15 -1
-
8/17/2019 Fundamentos da Informatica - Aula 06
8/33
VALORES FRACIONÁRIOS
-
8/17/2019 Fundamentos da Informatica - Aula 06
9/33
Valores Fracionários
• Um sistema numérico completo
também deve ser capaz de representar
valores fracionários;
• No sistema decimal, utilizamos a vírgula
para identificar valores não-inteiros;
-
8/17/2019 Fundamentos da Informatica - Aula 06
10/33
Valores Fracionários
• Exemplo: 12,34
12,34
4 x 10-2
= 0,043 x 10-1 = 0,3
2 x 100 = 2
1 x 101 = 10+ 12,34
-
8/17/2019 Fundamentos da Informatica - Aula 06
11/33
Valores Fracionários
• No caso do sistema binário, a mesma
estratégia para determinação de
valores inteiros pode ser utilizada;
• Quando a potência de um número é
negativa, o resultado equivale à mesma
potência na parte de baixo da fração;
-
8/17/2019 Fundamentos da Informatica - Aula 06
12/33
Valores Fracionários
• 2− =
• 2− =
=
= 0,5
• 2− =
=
4 = 0,25
• 2− =
=
8
= 0,125
• 2−4 =
=
= 0,0625
-
8/17/2019 Fundamentos da Informatica - Aula 06
13/33
Valores Fracionários
• Exemplo: 10,112
10,11
1 x 2-2
= 0,251 x 2-1 = 0,5
0 x 20 = 0
1 x 21 = 2+ 2,75
-
8/17/2019 Fundamentos da Informatica - Aula 06
14/33
Valores Fracionários
• O problema que surge é a dificuldade
de representar números onde a parte
fracionária não é um fator de 2, como
;
• Qualquer fração que possua um fator
primo que não seja 2 não termina;
-
8/17/2019 Fundamentos da Informatica - Aula 06
15/33
Valores Fracionários
-
8/17/2019 Fundamentos da Informatica - Aula 06
16/33
Valores Fracionários
• Outra maneira de associar a
representação de frações em binário é
determinar o denominador e “deslocar
a vírgula” de acordo com ele;
• Em seguida, escrever o numerador
normalmente, terminando na posição
deslocada;
-
8/17/2019 Fundamentos da Informatica - Aula 06
17/33
Valores Fracionários
• 0,875 7/8 111 0,111
• 1,125 9/8 1001 1,001
• 1,4375 23/16 10111 1,0111
• Calcule, em binário:
•
+
8 =?
•
4+
=?
-
8/17/2019 Fundamentos da Informatica - Aula 06
18/33
Notação Científica
• Na notação científica, números sãorepresentados em 3 partes:
×
– m é a mantissa, os dígitos a seremrepresentados;
• Em base 10, a mantissa deve estar entre 1 e10;
• Em base 2, a mantissa deve estar entre 1 e 2; – b é a base utilizada na representação;
– e é o expoente, ou ordem de grandeza;
-
8/17/2019 Fundamentos da Informatica - Aula 06
19/33
Notação Científica
• 2015 = 2,015 × 10
• 2015 = 111.1110.0000
• 2015 = 1,1111.1 × 2
• 300.000 = 3,0 × 10
• 300.000
=
100.1001.0011.1110.0000
• 300.000 = 1,0010.0100.1111.1 × 28
-
8/17/2019 Fundamentos da Informatica - Aula 06
20/33
Ponto Flutuante
• A representação de ponto flutuante éuma forma utilizada por computadorespara armazenar números muito
grandes ou pequenos e/ou fracionários,baseada na notação científica;
• O padrão IEEE 754 define diversasformas de armazenamento earredondamento para a representaçãode ponto flutuante;
-
8/17/2019 Fundamentos da Informatica - Aula 06
21/33
Ponto Flutuante
• A forma mais utilizada para ponto
flutuante é a de precisão simples, que éarmazenada em 32 bits;
– Outro formato comum é o de precisãodupla, que é armazenado em 64 bits;
-
8/17/2019 Fundamentos da Informatica - Aula 06
22/33
Ponto Flutuante
• Na precisão simples, utiliza-se 2 comobase fixa;
• A mantissa estará sempre entre 1 e 2,
portanto sua parte inteira sempre será1;
• O expoente é expresso em Excesso-127,
portanto o número zero no campo deexpoente indica uma grandeza de2−;
-
8/17/2019 Fundamentos da Informatica - Aula 06
23/33
Ponto Flutuante
• Pode-se descrever essa representaçãocomo a seguir:
= × × 2
= 1 2 × = 1, = 1 + × 2−
= 127
•Cada conjunto de bits no número emponto flutuante representa os valores s (1 bit), e (8 bits) e m (23 bits);
-
8/17/2019 Fundamentos da Informatica - Aula 06
24/33
Ponto Flutuante
• Para armazenar o valor 1 em pontoflutuante, em precisão simples, énecessário utilizar a seguinte
racionalização:(+) 1,0 x 20
• 1 bit de sinal = 0
•8 bits de expoente = 0111.1111
• 23 bits de mantissa =000.0000.0000.0000.0000.0000
-
8/17/2019 Fundamentos da Informatica - Aula 06
25/33
Ponto Flutuante
• Uma variável em ponto flutuante
armazenando o número 1, portanto,
estará escrita na memória como:
0011 1111 1000 0000 0000 0000 0000 0000
1+mantissa
(somente a parte fracionária da
mantissa)
Expoente-127
S
i
n
a
l
-
8/17/2019 Fundamentos da Informatica - Aula 06
26/33
Ponto Flutuante
• Qual é o valor da representação de ponto
flutuante abaixo?
0000 0000 0000 0000 0000 0000 0000 0000
1+mantissa
(somente a parte fracionária da
mantissa)
Expoente-127
S
i
n
a
l
-
8/17/2019 Fundamentos da Informatica - Aula 06
27/33
Ponto Flutuante
• Existem valores especiais nesta
representação:
IEEE-754 Precisão Simples Valors e m
x 0000 0000 000 0000 0000 0000 0000 0000 Zero (+ ou -)
x 0000 0000 Diferente de zeroNúmero não normalizado
(0,mantissa)
x 1111 1111 000 0000 0000 0000 0000 0000 Infinito (+ ou -)
x 1111 1111 Diferente de zero NaN (not a Number)
-
8/17/2019 Fundamentos da Informatica - Aula 06
28/33
Ponto Flutuante
• Exercícios:
• Considerando a representação de
ponto flutuante em precisão simples
abaixo, determine o valor armazenado
• Byte 01: 0xBF
• Byte 02: 0x40
• Byte 03: 0x00
• Byte 04: 0x00
-
8/17/2019 Fundamentos da Informatica - Aula 06
29/33
Ponto Flutuante
• Exercícios:
• Considerando a representação de
ponto flutuante em precisão simples
abaixo, determine o valor armazenado
• Byte 01: 0x42
• Byte 02: 0x90
• Byte 03: 0x00
• Byte 04: 0x00
-
8/17/2019 Fundamentos da Informatica - Aula 06
30/33
ATIVIDADE
-
8/17/2019 Fundamentos da Informatica - Aula 06
31/33
Trabalho em duplas
• Entrega dia 20/04
• 1: Considere a notação de ponto
flutuante 32 bits. Escreva 10 números
em ponto flutuante e seus equivalentes
em base 10.
• 2: Responda as perguntas a seguir:
-
8/17/2019 Fundamentos da Informatica - Aula 06
32/33
Trabalho em duplas
• Responda as perguntas abaixo utilizando anotação científica para apresentar o valorresultante e a notação hexadecimal paraapresentar a codificação de pontoflutuante equivalente:
– Qual o menor valor positivo que pode ser
representado em precisão simples? – Qual o maior valor positivo que pode ser
representado em precisão simples?
-
8/17/2019 Fundamentos da Informatica - Aula 06
33/33
Trabalho em duplas
• Responda as perguntas abaixo utilizando anotação científica para apresentar o valorresultante e a notação hexadecimal paraapresentar a codificação de pontoflutuante equivalente:
– Qual o menor valor negativo que pode ser
representado em precisão simples? – Qual o maior valor negativo que pode ser
representado em precisão simples?