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.
> 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.
> 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.
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.
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.
--
>
> 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