#include <stdio.h>
float FloatSign(float a) {
union { float f; int i; } v;
v.f = a;
v.i = (v.i&0x80000000)|0x3F800000; /*0x3F800000 = 1.0f*/
return v.f;
}
void Test(float f) {
printf("%f -> %f\n", f, FloatSign(f));
}
int main() {
Test(-1000.0f);
Test(-1024.824f);
Test(1.25f);
Test(3.1415926535f);
Test(-3.1415926535f);
return 0;
}