Inteiro e fracionario

Ola,
estou no 1 sem de engenharia e tenho que apresentar um projeto que implementa um IEEE 754 só que não deve haver strings…
gostaria que alguem me ajuda-se a separa a parte inteira da fracionaria???

Pelo que suponho, você tem de trabalhar apenas com arrays de bytes, ou então, no máximo, supor que você pode usar a multiplicação (long) da linguagem que você vai usar para implementar a IEEE 754, não?

O IEEE-754 é uma especificação bem grande, como você deve saber; então seu trabalho, eu suponho, deve ser implementar apenas um pequeno e minúsculo subconjunto da IEEE 754. Se você conseguir implementar:

  • Normalização de um float;
  • Multiplicação de 2 floats (32 bits);
  • Adição de 2 floats (32 bits - a adição é mais difícil que a multiplicação, como você deve saber - ou não estudou ainda a especificação?)

Acho que já é bastante coisa.

Aprenda a usar direitinho os operadores de bits - &, |, ^, <<, >>, >>> - você vai usá-los até dizer chega.

eu tenho que implementa em c, o IEEE 754 (um float e um double) :shock:
Obrigada …
vo pesquisa um pouco mais sobre isso … :wink:

Dica: acho que uma das partes mais chatas é tratar o bit de “carry” (que é necessário para implementar somas de dupla precisão, por exemplo).
Se você souber um pouco de assembler, e souber como é que se usa assembler dentro do C, acho que é mais fácil tratar isso no assembler mesmo que em C.

Outra dica: veja direitinho O QUE É que você vai ter de implementar. Como a especificação IEEE é MUITO EXTENSA, você deve ler a especificação e escolher direitinho só o que você vai ter tempo de implementar e dar a justificativa para o que você não vai conseguir implementar no seu trabalho. Vale a pena estudar um pouquinho a especificação antes de pôr a mão na massa (eu digo que isso vai DAR BASTANTE TRABALHO.)

Bahh, obrigadaoooo
vo da uma olhada nisso…
tpw a principio eh um programa aonde a entrada é um numero decimal, a saida é esse numero na forma IEEE 754 float e double e em hexa…
mas vlw msm jah estou com algumas ideias
Abraço

Pelo que você falou, não pode usar Double.parseDouble, não?

Se você pudesse, seria bem bobo:

double d = Double.parseDouble ("12345.67");
float f = (float) d;
byte[] bytesD = Double.doubleToRawLongBits (d);
byte[] bytesF = Float.floatToRawLongBits (f);
// Imprima em hexadecimal o valor de bytesD
...
// Imprima em hexadecimal o valor de bytesF
...