为了利用一些低级数学函数逼近黑客,我想直接将float的四个字节转换为整数。请注意,这与常规Java强制转换不同,我理解这不是相同的数字。我只想将这四个字节解释为整数而不是浮点数。有没有办法做到这一点?
答案 0 :(得分:10)
但是请注意,这将返回一个在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(); - )