【发布时间】:2018-12-26 07:46:00
【问题描述】:
Kotlin 1.3 引入了 unsigned integer types,但我似乎无法弄清楚如何在 Kotlin JVM 中从 ByteArray 获取无符号整数。
Kotlin Native 有一个方便的 ByteArray.getUIntAt() 方法,但 Kotlin JVM 不存在这种方法。
val bytes: ByteArray = byteArrayOf(1, 1, 1, 1)
val uint: UInt // = ???
我在这里有什么选择?有没有比使用ByteBuffer 更优雅的方法,或者通过位移来摆脱这种方式?
【问题讨论】:
-
你可以使用
val uint = bytes[index].toUInt() -
@Moinkhan 不,这只是转换
index处的单个字节。我需要将 4 个字节转换为单个无符号整数。 -
但是逻辑是什么......所有元素都应该添加还是什么??
-
getUIntAt()也接受相同的索引 -
@Moinkhan 没有逻辑。
UInt是一个 32 位有符号整数。 32 位是 4 个字节。
标签: arrays kotlin jvm byte unsigned-integer