-
1. Data: 2010-01-01 14:38:01
Temat: sprawdzenie floata w c++
Od: Jan Stożek <c...@c...pl>
Witam,
Przepraszam, jeżeli to jest trywialne, ale nie jestem zbyt biegły w
te klocki.
Jak można sprawdzić, czy dany, losowy ciąg bitów zawiera poprawną
liczbę w formacie float? Czy każdy ciąg 32 bitów jest poprawną liczbą
zmiennoprzecinkową, czy też trzeba uwzględniać jakieś przypadki
szczególne? O NaN-ach właśnie czytam - czy jak je uwzględnię, to już
wystarczy?
Kompilator gcc, jeśli to ma jakieś znaczenie.
Z góry serdecznie dziękuję za pomoc.
--
Pozdrawiam,
(js).
PS. Odpowiadając bezpośrednio proszę usunąć minus wraz ze
wszystkimi kolejnymi literami.
-
2. Data: 2010-01-01 15:17:53
Temat: Re: sprawdzenie floata w c++
Od: Wojciech Muła <w...@p...null.onet.pl.invalid>
Jan Stożek <c...@c...pl> wrote:
> Jak można sprawdzić, czy dany, losowy ciąg bitów zawiera poprawną
> liczbę w formacie float? Czy każdy ciąg 32 bitów jest poprawną liczbą
> zmiennoprzecinkową, czy też trzeba uwzględniać jakieś przypadki
> szczególne? O NaN-ach właśnie czytam - czy jak je uwzględnię, to już
> wystarczy?
Zobacz dokumentację do math.h - zawiera makra pozwalające rozróżnić
rodzaje liczb zmiennoprzecinkowych: fpclassify, isfinite, isnormal,
isnan i isinf.
w.
-
3. Data: 2010-01-01 15:50:44
Temat: Re: sprawdzenie floata w c++
Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl>
On Jan 1, 3:38 pm, Jan Stożek <c...@c...pl> wrote:
> Jak można sprawdzić, czy dany, losowy ciąg bitów zawiera poprawną
> liczbę w formacie float? Czy każdy ciąg 32 bitów jest poprawną liczbą
> zmiennoprzecinkową, czy też trzeba uwzględniać jakieś przypadki
> szczególne?
Każdy ciąg 32 bitów jest poprawną liczbą zmiennoprzecinkową.
NaN z nietypową mantysą jest jedynym przypadkiem, kiedy taka wartość
nie mogła powstać z obliczeń na innych liczbach, tylko powstała jako
ciąg bitów.
> O NaN-ach właśnie czytam - czy jak je uwzględnię, to już wystarczy?
Wystarczy do czego?
I jak chcesz je uwzględniać? 0.0/0.0 albo 1.0/0.0-1.0/0.0 to NaN.
-
4. Data: 2010-01-01 22:46:03
Temat: Re: sprawdzenie floata w c++
Od: Jan Stożek <c...@c...pl>
Witam,
Wielkie dzięki.
Po głębokim namyśle Marcin 'Qrczak' Kowalczyk napisał w piątek, 1
stycznia 2010 16:50:
> Każdy ciąg 32 bitów jest poprawną liczbą zmiennoprzecinkową.
>
> NaN z nietypową mantysą jest jedynym przypadkiem, kiedy taka wartość
> nie mogła powstać z obliczeń na innych liczbach, tylko powstała jako
> ciąg bitów.
>
>> O NaN-ach właśnie czytam - czy jak je uwzględnię, to już wystarczy?
>
> Wystarczy do czego?
Piszę program, w którym generuję ciągi 32-bitowe (nieważne jak... w
każdym razie nie w wyniku obliczeń zmiennoprzecinkowych), które w
dalszych obliczeniach będą traktowane jako wartości typu float. W
związku z tym chciałbym na wstępie odrzucić wszystko, co nie jest
poprawną liczbą, żeby program się nie wysypał podczas wykonania.
--
Pozdrawiam,
(js).
PS. Odpowiadając bezpośrednio proszę usunąć minus wraz ze
wszystkimi kolejnymi literami.
-
5. Data: 2010-01-01 22:55:29
Temat: Re: sprawdzenie floata w c++
Od: Jan Stożek <c...@c...pl>
Witam,
Bardzo dziękuję.
To jest chyba to, czego potrzebuję.
Po głębokim namyśle Wojciech Muła napisał w piątek, 1 stycznia 2010
16:17:
> Jan Stożek <c...@c...pl> wrote:
>
>> Jak można sprawdzić, czy dany, losowy ciąg bitów zawiera
>> poprawną
>> liczbę w formacie float? Czy każdy ciąg 32 bitów jest poprawną
>> liczbą zmiennoprzecinkową, czy też trzeba uwzględniać jakieś
>> przypadki szczególne? O NaN-ach właśnie czytam - czy jak je
>> uwzględnię, to już wystarczy?
>
> Zobacz dokumentację do math.h - zawiera makra pozwalające rozróżnić
> rodzaje liczb zmiennoprzecinkowych: fpclassify, isfinite, isnormal,
> isnan i isinf.
>
> w.
--
Pozdrawiam,
(js).
PS. Odpowiadając bezpośrednio proszę usunąć minus wraz ze
wszystkimi kolejnymi literami.
-
6. Data: 2010-01-02 07:20:58
Temat: Re: sprawdzenie floata w c++
Od: Jacek Czerwinski <...@...z.pl>
Jan Stożek pisze:
>
> Piszę program, w którym generuję ciągi 32-bitowe (nieważne jak... w
> każdym razie nie w wyniku obliczeń zmiennoprzecinkowych), które w
> dalszych obliczeniach będą traktowane jako wartości typu float. W
> związku z tym chciałbym na wstępie odrzucić wszystko, co nie jest
> poprawną liczbą, żeby program się nie wysypał podczas wykonania.
>
Jeśli to jakakolwiek forma rand() to rozkład (i wszystko co związane)
masz kiepski a w ogóle to nie-wiadomo-jaki