按顺序将float转换为int而不进行强制转换

时间:2016-04-13 18:06:18

标签: java

我试图校验一系列浮点数。因此我想按顺序将它们转换为整数。有没有快速的方法可以自行操作字节?

1 个答案:

答案 0 :(得分:6)

您可以使用Float.floatToRawIntBits()获取float的内部按位表示形式。然后,您可以使用返回的int创建校验和:

int checksum = 0;
for (float value : floatArray) {
  checksum += Float.floatToRawIntBits(value);
}

根据您的使用情况,您还可以使用Float.floatToIntBits()为所有0x7fc00000值返回规范值NaN

对于校验和计算本身,我采用了最简单的方法来总结这些值。有更好的校验和算法,对于特定的翻转位模式更加健壮 - 一旦你有int值,就可以将它们与你喜欢的任何校验和算法一起使用(CRC,MD5,SHA2或其他)。

有关详细信息,请参阅示例

相关问题