How to reverse the bits of a number in Kotlin

1 Answer

0 votes
fun reverseBits(n: UInt): UInt {
    val bin = n.toString(2).padStart(32, '0')
    val rev = bin.reversed()

    return rev.toUInt(2)
}

fun bits(n: UInt): String {
    val bin = n.toString(2).padStart(32, '0')

    return bin.chunked(8).joinToString(" ")
}

fun main() {
    val a = 19u
    val b = 3u

    val ra = reverseBits(a)
    val rb = reverseBits(b)

    println("Original 19: ${bits(a)}")
    println("Reversed 19: ${bits(ra)}")
    println()
    println("Original 3:  ${bits(b)}")
    println("Reversed 3:  ${bits(rb)}")
}


/*
run:

Original 19: 00000000 00000000 00000000 00010011
Reversed 19: 11001000 00000000 00000000 00000000

Original 3:  00000000 00000000 00000000 00000011
Reversed 3:  11000000 00000000 00000000 00000000

*/

 



answered Apr 4 by avibootz
...