¿La forma más rápida de iniciar sesión en Java?

Me gustaría obtener el signo de unfloat valor como unint valor de -1 o 1.

Evitar los condicionales siempre es una buena idea para reducir el costo computacional. Por ejemplo, una forma en la que puedo pensar sería utilizar un rápidobit-shift para obtener la señal:

float a = ...;
int sign = a >> 31; //0 for pos, 1 for neg
sign = ~sign; //1 for pos, 0 for neg
sign = sign << 1; //2 for pos, 0 for neg
sign -= 1; //-1 for pos, 1 for neg -- perfect.

O más concisamente:

int sign = (~(a >> 31) << 1) - 1;
¿Parece esto un buen enfoque?¿Funcionará para todas las plataformas, dadas las preocupaciones sobre el endianness (como MSB tiene el signo)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta