fun longToByteArray(value: Long): ByteArray {
val bytes = ByteArray(8)
ByteBuffer.wrap(bytes).putLong(value)
return Arrays.copyOfRange(bytes, 4, 8)
}
fun intToUInt8(value: Int): ByteArray {
val bytes = ByteArray(4)
ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).putInt(value and 0xff)
var array = Arrays.copyOfRange(bytes, 0, 1)
return array
}
我认为这些是Java方法的Kotlin等效方式,但我想知道这些方法在Kotlin中是否正确/必要。
编辑:根据评论修正示例,并演示更改字节顺序。感谢反馈。我将接受演示如何在没有ByteBuffer的情况下完成此操作的答案。
myInt.toByte() and 0xFF.toByte()
这样写并没有太多意义。不过,myInt and 0xFF
可能会有用。你不希望结果是一个Byte
,因为Byte
是有符号的。 - Louis Wassermanval bytes = ByteArray(8)
。 - Alexander Egger