Mudanças entre as edições de "CIL29003-2015-1"
Linha 477: | Linha 477: | ||
Ex: determinar as representações binárias por ponto flutuante de precisão simples para: | Ex: determinar as representações binárias por ponto flutuante de precisão simples para: | ||
− | -2,625 = -2 + 1/2 + 1/8 = -21/8 = <math> -21 | + | -2,625 = -2 + 1/2 + 1/8 = -21/8 = <math> -21 . 2^{-3} = -10101 . 2^{-3} = -1,0101 . 2^{-1} </math> |
portanto S=1, F=0101..., E=128 (10000000), já que 128-127=1, que é o expoente da base binária do número obtido | portanto S=1, F=0101..., E=128 (10000000), já que 128-127=1, que é o expoente da base binária do número obtido |
Edição das 17h12min de 12 de fevereiro de 2015
Dados Importantes
Professor: Odilson Tadeu Valle
Email: odilson@ifsc.edu.br
Atendimento paralelo: 2ª das 17h35 às 18h30 e 6ª das 9h40 às 10h35. Local: Lab. de Desenvolvimento.
- Avaliações
- 3 avaliações (P1, P2 e P3) mais um projeto final (PF).
- Cada uma das avaliações terá terá um conceito numérico: 1, 2, ..., 9, 10. Conceito mínimo para não necessitar reavaliação: 6.
- Um ou mais conceitos abaixo de 6 implica na realização da reavaliação: uma única a ser realizada no último dia de aula.
IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação e aguardar o parecer da coordenação.
Plano de Ensino
Cronograma de atividades | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Diário de aulas
Aula 1 - 3/2/15: Apresentação da disciplina |
---|
|
Aula 2 - 5/2/15: Sistemas de numeração Binário, Octal, Hexadecimal e conversão entre sistemas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sistemas de numeraçãoObserve a Figura do odômetro. Supoha que o mesmo possua somente duas roldanas de algarismos e que cada algarismo represente exatamente 1 km. Qual a quantidade máxima de quilômetros que o suposto odômetro pode representar?
Agora suponha que cada roldana tenha impresso somente os valores 0 e 1. Qual a quantidade máxima de quilômetros que o mesmo pode representar?
Obs.: LSB (least significant bit) é o bit menos significativo que é o equivalente as unidades na representação decimal. MSB (most significant bit) é o bit mais significativo e sempre ocupa a posição mais a esquerda da representação. Este sistema de numeração é conhecido como binário ("que tem aspecto dual, ou é formado por dois elementos ou partes"). No caso anterior como poderíamos representar maiores quantidades de quilômetros? Em outra linha de raciocínio, como pode-se aumentar a capacidade de contagem quilométrica, mais do que o permitido no sistema decimal? Aumenta-se o número de símbolos disponíveis em cada roldana. Por exemplo, se adotarmos a seguinte simbologia: 0, 1, ..., 8, 9, A, B, C, D, E, F, pode-se ter a seguinte representação quilométrica:
Este é o sistema de numeração hexadecimal. Um outro importante sistema de numeração é o octal. Perceba que é possível a construção de qualquer sistema de numeração. Conversão entre sistemas de numeraçãoComo é de conhecimento geral, o sistema de numeração mais utilizado port seres humanos é o sistema decimal. Não tão conhecido assim, mas muito utilizado, é o sistema de numeração binário, amplamente adotado nos sistema informatizados. Uma pergunta que cabe é, por exemplo, quando digitamos algum número em uma calculadora, o que acontece? Em primeiro lugar, a calculadora apresenta o valor digitado no visor, para termos certeza do que digitamos e, em seguida, internamente à calculadora este valor é convertido para binário, o sistema de numeração que ela entende. Como esta conversão ocorre? Conversão de outras bases para a base decimalA regra geral para conversão de binário para um número decimal é assim expressa:
onde é um número decimal e é sua representação binária usual. Observe que esta regra pode ser estendida para qualquer sistema de numeração. Por exemplo, vamos converter para a base decimal.
Outro exemplo, vamos converter para a base decimal.
Conversão da base decimal para outras basesA conversão de um número da base decimal para qualquer outra base pode ser efetivada usando-se divisões sucessivas do valor decimal pela base a ser convertido, tomando-se com resultado os sucessivos restos dessa divisão. Por exemplo, para converter 23 para a base binária devemos fazer o seguinte procedimento: O procedimento para outras bases é o mesmo, por exemplo, para converter-se 258 para a base 8, utiliza-se o mesmo procedimento acima, substituindo os valores 2 por 8, no divisor. Conversão entre bases de origem bináriaPara conversão entre as bases binária, octal e hexadecimal, basta fazer-se o uso das seguintes tabelas de conversão.
Por exemplo, para converter para binário, deve-se tomar dígito a dígito da tabela acima e ir montando o valor binário equivalente: , e . Portanto o resultado da conversão é Se desejarmos converter da base octal para a hexadecimal e vice-versa, a maneira mais fácil é primeiro a conversão da base de origem para a base binária e, em seguida, desta para a base destino. Por exemplo, para converter para a base octal procedemos primeiro a conversão para a base binária () e em seguida, tomando três a três dígitos a partir do LSB, convertemos para o octal usando a tabela, resultando em ExercíciosConverta para decimal Converta para a base indicada: |
Aula 3 - 5/2/15: Representações binárias | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
A tabela a seguir representa os númerios decimais de 0 a 15 pelos códigos binário convencinal, octal, hexadecimal, Gray, one-hot, Johnson e BCD. Código Gray: código de distância unitária porque a distância entre duas palavras adjacentes é sempre 1 bit [1]. Código one-hot: frequentemente utilizado na codificação de máquinas de estados [2] [3]. Código Johnson: Também utilizado para representar máquinas de estados. É um código intermediário entre o one-hot e o Gray, em termos de uso do hardware. Código BCD (binary-coded decimal): cada dígito de um número decimal é representado por um conjunto de 4 bits do código binário. Códigos para números negativosComo representar sinal no código binário? Código sinal-magnitudeNesse caso o MSB representa o sinal: 0 = + e 1 = -. Assim sendo, o MSB não faz parte da representação sequencial binária do número. Ex:
Código complemento de umSe o MSB for 0 (número positivo), para obter o equivalente negativo, basta inverter todos os bits. Ex:
Código complemento de doisEsta é a opção adota para representar números negativos em praticamento todos os computadores e outros sistema digitais. A representação binária de um número negativo é obtida tomando sua representação positiva, invertendo todos os bits e então adicionando um a ele. Exemplo, -7 (5 bits) é igual a 00111 ==> 11000 + 1 ==> 11001 Regra prática Para cálculo do equivalente decimal de um número representado em complemento de dois, pode-se fazer uso do modelo apresentado no exemplo:
Ao somar-se todos os valores da segunda linha da tabela acima, obtém-se o valor 19. Usando números de 8 bits, Calcule o complemento de dois para:
Algum problema? Exercísios
|
Aula 4 - 13/2/15: Ponto fixo e ponto flutuante | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Como é a representação (e conversão para decima) de um número binário fracionário? Representação por ponto fixoA representação segue a regra
onde:
Por exemplo:
Portanto o decimal equivalente é: 29,625 Representação por ponto flutuanteComo representar número inteiros? Padrão IEEE 754
onde:
Observe que tem-se 32 bits totais para a precisão simples e 64 bits para a precisão dupla. Precisão simplesO número decimal equivalente é obtido por:
Ex1: Encontre o valor decimal equivalente para o valor abaixo que está em ponto flutuante com precisão simples. 10111111110...0 Analisando o número acima obtemos: S = 1, E = 01111111 = 127, F = 10...0 = = 0,5. Portanto
Ex2: Encontre o valor decimal equivalente para o valor abaixo que está em ponto flutuante com precisão simples. 010000001010...0 Precisão duplaO número decimal equivalente é obtido por:
Observações:
Ex: determinar as representações binárias por ponto flutuante de precisão simples para: -2,625 = -2 + 1/2 + 1/8 = -21/8 = portanto S=1, F=0101..., E=128 (10000000), já que 128-127=1, que é o expoente da base binária do número obtido Ponto flutuante versus inteiroPonto flutuante pode representar números muito grandes e números muito pequenos. Por exemplo, com os 32 bits da precisão simples pode-se representar a faixa de até aproximadamente . Enquanto que na representação inteira consegue-se somente a faixa até Qual o preço a pagar? A precisão dos números em ponto flutuante pode ser menor. Ex: Dado um valor inteiro de 32 bits y1 = 11111111 11111111 11111111 00000001
= 1,1111111 11111111 11111111 00000001
Ponto flutuante equivalente y2 = 1,1111111 11111111 11111111
S=0, F=1111...1, E=158
O erro relativo é dado por: (y1-y2)/y1 = (00000000 00000000 00000000 00000001)/y1 = 1/y1 que é aproximadamente
Perceba que esse é o menor erro possível. Qual seria o erro aproximado para 11111111 11111111 11111111 10000000? ExercíciosLivro texto: 2.33 ==> 2.38 |