Есть ли простой способ определить знак числа с плавающей запятой?
Я экспериментировал и придумал следующее:
#include <iostream>
int main(int argc, char** argv)
{
union
{
float f;
char c[4];
};
f = -0.0f;
std::cout << (c[3] & 0x10000000) << "\n";
std::cin.ignore();
std::cin.get();
return 0;
}
где (c [3] & 0x10000000) дает значение> 0 для отрицательного числа, но я думаю, что это требует от меня предположения, что:
Пожалуйста, поправьте меня, если какое-либо из этих предположений неверно или я что-то пропустил.