Na przykładW jaki sposób kompilatory C i C++ implementują decyzję równości dla liczb zmiennoprzecinkowych?
float a = 1.0;
float b = 1.2;
puts(a == b? "equal": "not equal");
zajmuje kompilatora z nim bitwisely lub za pomocą innych metod?
(wiem, że nie jest to dobry wybór, aby zdecydować, równość liczb zmiennoprzecinkowych przez „==”, po prostu chcę wiedzieć, jak kompilator oferty z tej sytuacji.)
Jaka jest różnica między wartością bitową a wartością? Z pewnością są takie same dla pływających –
@EdHeal wszystko w porządku, problem jest edytowany – Wizmann
Wszystkie liczby zmiennoprzecinkowe są przechowywane w ** IEEE-754 Format zmiennoprzecinkowy **. Są one albo ** 32-bitowe ** (zmiennoprzecinkowa pojedyncza precyzja), albo ** 64-bitowe ** (zmiennoprzecinkowa podwójna precyzja). Znaczenie oznacza liczbę całkowitą dla każdej liczby zmiennoprzecinkowej na podstawie bitów w pamięci. Kompilator obsługuje go w ten sam sposób, w jaki robi liczbę całkowitą o równoważnym rozmiarze. Zobacz: [** Przewodnik po floodzie - Co każdy programista powinien wiedzieć ... **] (http://floating-point-gui.de/) –