val data: ByteArray = listOf<UByte>(0x80, 0x01).map { it.toByte() }.toByteArray()
val v: Int = data[0].toInt() + (data[1].toInt() shl 8)
assertEquals(0x0180, v) // <- ここでエラー
こうすると、 data[0]
が実はマイナスの値として扱われてしまうのでエラーになる
val data: ByteArray = listOf<UByte>(0x80, 0x01).map { it.toByte() }.toByteArray()
val v: Int = data[0].toUByte().toInt() + (data[1].toUByte().toInt() shl 8)
assertEquals(0x0180, v) // <- OK
こんな感じに一度 toUByte()
してあげればOK