ByteArray在kotlin漂浮

use*_*425 2 arrays type-conversion kotlin

我有一个4字节的数组,代表一个浮点值.由于kotlin对Byte缺少按位操作,我怎样才能以最佳方式将其转换为浮点数?

hot*_*key 8

您可以使用Java NIO ByteBuffer,它具有getFloat()getFloat(index)功能为:

val bytes = byteArrayOf(1, 2, 3, 4)

val buffer = ByteBuffer.wrap(bytes)
val float1 = buffer.getFloat()  // Uses current position and increments it by 4
val float2 = buffer.getFloat(0) // Uses specified position
Run Code Online (Sandbox Code Playgroud)

  • 如果您的 4 字节数组表示 *Little Endian* 浮点值,则必须添加 `.order(ByteOrder.LITTLE_ENDIAN)`: `val wrap = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN)` (2认同)