abs函数用于java中的float值

时间:2014-11-04 16:49:25

标签: java bit-manipulation bitwise-operators

我需要使用按位运算符为float创建函数abs,此函数返回浮点值。

我无法使用<>

我试试这个

(float)((int)f ^ ((int)f>>31)) - ((int)f>>31) 

但对于-2.5值,我得到2.0,这是不正确的。

你能帮助我吗?

2 个答案:

答案 0 :(得分:3)

你可以这样做

float abs = Float.intBitsToFloat(Float.floatToIntBits(x) & 0x7FFFFFFF);

答案 1 :(得分:2)

浮点数的最重要位是符号位。所以...你应该能够使用按位&amp;运算符清除该位以获得绝对值。

使用它作为你的面具按位和你的值:

0x7fffffff