有没有办法*直接*将浮点数转换为Java中的整数

时间:2014-11-07 20:46:44

标签: java math

为了利用一些低级数学函数逼近黑客,我想直接将float的四个字节转换为整数。请注意,这与常规Java强制转换不同,我理解这不是相同的数字。我只想将这四个字节解释为整数而不是浮点数。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:10)

是:Float.floatToIntBits()

但是请注意,这将返回一个在MSB中读取的整数(这是Java对所有整数基元类型所做的;浮点基元类型使用基本2 IEEE 754,就像绝大多数现有的计算机编程语言一样)。如果你想要LSB,你必须经历ByteBuffer(和set its byte order;默认的大端)。

请注意,还有Float.floatToRawIntBits()。并且Double类具有等效的方法(当然,它们使用long代替。)

答案 1 :(得分:3)

您在寻找floatToIntBits(float value)吗?

  

返回指定浮点值的表示形式   根据IEEE 754浮点“单格式”位布局。

然后你可以根据需要操作这些位。

答案 2 :(得分:0)

使用ByteBuffer方法putFloat()和getInt(); - )