Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

sprawdzenie floata w c++

3 views
Skip to first unread message

Jan Stożek

unread,
Jan 1, 2010, 9:38:01 AM1/1/10
to
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.

Wojciech Muła

unread,
Jan 1, 2010, 10:17:53 AM1/1/10
to
Jan Stożek <conu...@chello.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.

Marcin 'Qrczak' Kowalczyk

unread,
Jan 1, 2010, 10:50:44 AM1/1/10
to
On Jan 1, 3:38 pm, Jan Stożek <conus-...@chello.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.

Jan Stożek

unread,
Jan 1, 2010, 5:46:03 PM1/1/10
to
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.

Jan Stożek

unread,
Jan 1, 2010, 5:55:29 PM1/1/10
to
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 <conu...@chello.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.

--

Jacek Czerwinski

unread,
Jan 2, 2010, 2:20:58 AM1/2/10
to
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

0 new messages