a forma más rápida de voltear el signo de un doble / flotante en C
Cuál es la forma más rápida de voltear el signo de un doble (o flotante) en C?
ensé que acceder al bit de signo directamente sería la forma más rápida y encontré lo siguiente:
double a = 5.0;
*(__int64*)&a |= 0x8000000000000000;
// a = -5.0
float b = 3.0;
*(int*)&b |= 0x80000000;
// b = -3.0
Sin embargo, lo anterior no funciona para números negativos:
double a = -5.0;
*(__int64*)&a |= 0x8000000000000000;
// a = -5.0