Deadmyself Asked:2020-08-01 18:30:47 +0800 CST2020-08-01 18:30:47 +0800 CST 2020-08-01 18:30:47 +0800 CST Kotlin 中的 BitConverter 模拟 772 C# 有一个BitConverterc 方法ToInt32。 Kotline 中是否有类似的模拟? kotlin 1 个回答 Voted Best Answer insolor 2020-08-02T01:32:34+08:002020-08-02T01:32:34+08:00 最接近的类似物是ByteBuffer. 不像BitConverter- 它作为一个迭代器工作,所以没有额外的参数 - 数组中初始字节的位置,但是你可以简单地从一个缓冲区顺序地拉取值到另一个。 import java.nio.ByteBuffer import java.nio.ByteOrder fun main() { val bytes = byteArrayOf(0x33, 0x22, 0x11, 0x00, 0x34, 0x12) val buffer = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN) println("0x"+buffer.getInt().toString(16)) // Вытаскиваем 32-битное целое println("0x"+buffer.getShort().toString(16)) // Вытаскиваем следующее 16-битное целое } 结论: 0x112233 0x1234 操场 规定的字节顺序LITTLE_ENDIAN,因为 在 x86 平台上,正是使用这个顺序(首先是低字节,然后是高字节),ByteBuffer默认为BIG_ENDIAN.
最接近的类似物是
ByteBuffer
. 不像BitConverter
- 它作为一个迭代器工作,所以没有额外的参数 - 数组中初始字节的位置,但是你可以简单地从一个缓冲区顺序地拉取值到另一个。结论:
操场
规定的字节顺序
LITTLE_ENDIAN
,因为 在 x86 平台上,正是使用这个顺序(首先是低字节,然后是高字节),ByteBuffer
默认为BIG_ENDIAN
.