• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

Cálculo de binários em vírgula flutuante

19 mensagens neste tópico

Desculpem lá estar a ser um bocado chato, mas é só para ter a certeza que o meu raciocínio esta correcto visto eu estar aqui a estudar isto sozinho e não ter nenhum professor ao meu lado que me confirme os resultados :P

Tanto o enunciado como as minhas respostas estão na seguinte imagem:

1247981221.jpg

NOTA: Ainda não resolvi as outras alíneas pelo que não quero as respostas porque ainda quero tentar fazer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para o primeiro penso que tens mal as contas:

mantissa: 111 -> 1.111 = 2^0 + 2^-1 + 2^-2 + 2^-3 = 15/8

expoente: 1110 -> (8-4-2)-7 = 14-7 = 7

15/8 * 2^7 = 240


Para o segundo, voltaste a falhar na Matemática:

mantissa: 000 -> 1.000 = 1

expoente: 0001 -> 1 - 7 = -6

1 * 2^-6 = 1/2^6 = 1/64

mais o sinal: -1/64

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente no primeiro exercício fui um bocado estúpido, não sei onde fui buscar aquele 16... De qualquer maneira, como tenho feito e com o 14, da-me 272 e não 240.

A diferença esta na forma como tratas a mantissa, tu tas a trata-la sempre como 1.xxx e eu 0.xxx e eu fiz isto assim por causa do seguinte:

1307381937.jpg

Como é que explicas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na imagem que apresentaste antes (na do exercício) tinhas: V=(-1)S * 1.F * 2??.

De qualquer forma, nessa notação que usas também tens que somar uma unidade, por isso devias obter o mesmo resultado.

f: 111 -> 0.111 = 2^-1 + 2^-2 + 2^-3 = 7/8

m = f + 1 = 7/8 + 1 = 15/8

Ou seja, estás a calcular o f de forma incorrecta:

se tens 1.1001, isto traduz-se em

1*2^0 + 1*2^-1 + 0*2^-2 + 0*2^-3 + 1*2^-4

os expoentes à direita da vírgula vão decrescendo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Senão fazes como eu:

2a) 0 1110 111

Mantissa: 111 -> como são usados 3 bits, 2^3 = 8.

111 = 7, logo F=7/8.

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esses pdfs falam no 1.xxx

E é 1.xxx que se deve usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ou seja, estás a calcular o f de forma incorrecta:

se tens 1.1001, isto traduz-se em

1*2^0 + 1*2^-1 + 0*2^-2 + 0*2^-3 + 1*2^-4

os expoentes à direita da vírgula vão decrescendo.

Eu não estou a calcular o f de forma incorrecta, estou a fazer exactamente o mesmo procedimento que vês na imagem que eu deixei. Imagem essa que faz parte dos slides que o prof usou na aula para explicar. Se isso tivesse errado alguém tinha dado conta...

A diferença é que tu estas a usar o 1 no lado esquerdo do separador decimal, eu estou a ignora-lo. Mas mais tarde, uso-o.

Se vires bem, eu fiz exactamente a mesma coisa que na imagem, só mudei os valores...

@Warrior

Não percebi o que queres dizer com isso... Estás a dizer que da maneira que eu fiz é a maneira que se deve fazer? Que é que os pdfs falam... Confirmas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, não tinha visto bem, estás a fazer as contas como o Baderous.

O problema é no 4+2+1 = 9

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fonix, eu devia estar bêbado... além de estar mal ai, ta mal no outro caso que falamos lá em cima. Ou seja, eu tenho isto:

4+2+1=9

8+4+2=16

O que está completamente errado porque o correcto é:

4+2+1=7

8+4+2=14

Isto anda-me a dar voltas a cabeça, tenho de começar a estar mais atento.

Conclusão, fora estas continhas estúpidas que me falharam, o "meu" raciocínio (copiado dos slides) esta correcto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Conclusão, fora estas continhas estúpidas que me falharam, o "meu" raciocínio (copiado dos slides) esta correcto?

É provável (mas não sou muito bom a compreender o raciocínio das outras pessoas :P).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou aproveitar este tópico para expor mais 1 dúvida:

sc1gf5.th.jpg

Para a a) sei que tenho de passar o valor para decimal e depois para binário para depois normalizar, mas não estou a conseguir passar para decimal!! Alguém ajuda?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oh ya, enganei-me, eu para decimal já tinha conseguido e tinha-me dado -4,89. O problema era mesmo passar para binário.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Afinal eu enganei-me nos cálculos e o valor em decimal dá -13,111...

Agora tenho de passar para binário. Já me mostraram 1 solução que é assim:

13 = 1101

Normalizando dá: 1,101 * 2^3, logo (sendo PEQUENO1 da forma V = (-1)^s * 1,f * 2^e-7 )

V = (-1)^1 * 1,101 * 2^3

Como é normalizado, a Mantissa = 1+f => 1,101 = 1 + f => f = 0,101

E = 3 => e - 7 = 3 => e = 10 = 1010

logo finalmente, temos em PEQUENO1: 1 1010 101

Eu até percebo a resolução, mas aquela primeira parte de se normalizar o 13 não percebo porque é que é feita.

EDIT: Parece que afinal tem a ver com o facto de em PEQUENO1 a mantissa estar reduzida a apenas 3 bits e como 13 já tem 4 bits, não é preciso fazer mais contas...

EDIT: Povo, isto não está fácil, será que alguém me pode ajudar a resolver o resto, não consigo obter nenhuma solução correcta e tenho teste desta treta amanhã.  :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tanto do exercício 3 como do 4, não percebo puto... Mas também já são exercícios para alunos mais avançados (assim como eles gostam de separar). Eu se fizer todas as que são obrigatórias para ter o 10, já fico contente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O 3 é fazer a mesma coisa do 2. Separas os diversos campos e depois constróis a expressão pela fórmula normalizada e calculas o valor. Agora o 4 é que me está a custar a entrar, mas já encontrei umas resoluções no sharing.

Btw, a mim o que me preocupa mesmo é isso das perguntas obrigatórias, senão já tinha ido dormir...(ainda me falta ver os 2 últimos pdfs teóricos!)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se os exercícios são iguais para quê que existem dois? Um não chegava? Ou adicionam mais alíneas...

Pois, mas eu vou mesmo dormir e acordo amanha cedo, mas isto sou eu que não tenho aulas de manha a segunda... Anyway, sabes que podes levar uma folha escrita a mão com o que quiseres não sabes? Vou tentar espremer o máximo que conseguir exactamente desses pdfs porque a última matéria ainda estudei muito pouco e só sai teoria.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, é como eu vou fazer! Neste momento ainda tenho espaço na parte da frente para colocar a resolução do 4 e do 5 para o caso de sair algo parecido e algumas notas, e depois na parte de trás vou meter lá a teórica. E amanhã também não tenho aulas de manhã e a aula de POO vai para o tecto com um bocado de sorte.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se calhar também não vou a aula, logo se vê...

A minha sorte é que eu ainda tenho aula prática de SC antes do teste :( Vai servir para tirar algumas dúvidas.

Bem, vou masé dormir que se faz tarde, tenho o despertador a tocar para as 7 :X

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora