import kotlin.experimental.and
fun main() {
//sampleStart
val b: Byte = "01001100".toByte(2)
val msb: Byte = b.toInt().ushr(4).toByte()
val lsb: Byte = b and 15
//sampleEnd
println(b.toString(2).padStart(8, '0'))
println(msb.toString(2).padStart(4, '0'))
println(lsb.toString(2).padStart(4, '0').padStart(8))
}
Also, your example byte (10111100
) cannot be represented as a Byte
:
fun main() {
//sampleStart
val b: Byte = "10111100".toByte(2) // 👎 Value out of range.
//sampleEnd
}
You’ll need to use a UByte
:
fun main() {
//sampleStart
val b: UByte = "10111100".toUByte(2) // 👍
val msb: Byte = b.toInt().ushr(4).toByte()
val lsb: Byte = (b and 15u).toByte()
//sampleEnd
println(b.toString(2).padStart(8, '0'))
println(msb.toString(2).padStart(4, '0'))
println(lsb.toString(2).padStart(4, '0').padStart(8))
}