我需要写一些东西到BLE设备,只能接受字节数组。但是我想写一个无符号长整型,我怎么把它转换成字节数组呢?先谢谢你了。
fzwojiic1#
这应该可以做到:
var source: ULong = 0uL val bytes = ByteArray(5) bytes[0x0] = (source shr 32).toByte() bytes[0x1] = (source shr 24).toByte() bytes[0x2] = (source shr 16).toByte() bytes[0x3] = (source shr 8).toByte() bytes[0x4] = source.toByte()
这取决于您是否希望在索引0处更高阶地填充字节,等等。
gcuhipw92#
fun ULong.toByteArray(): ByteArray { val result = ByteArray(ULong.SIZE_BYTES) (0 until ULong.SIZE_BYTES).forEach { result[it] = this.shr(Byte.SIZE_BITS * it).toByte() } return result }
然后用途:someULongValue.toByteArray()
someULongValue.toByteArray()
2条答案
按热度按时间fzwojiic1#
这应该可以做到:
这取决于您是否希望在索引0处更高阶地填充字节,等等。
gcuhipw92#
然后用途:
someULongValue.toByteArray()