How to round a number to the nearest power of 2 in Kotlin

1 Answer

0 votes
fun roundToNearestPowerOf2(n: UInt): UInt {
    if (n == 0u) return 0u

    // Compute the previous power of 2 using leading zero count
    val prevPower = 1u shl (31 - n.countLeadingZeroBits())
    val nextPower = prevPower shl 1

    return if (n - prevPower < nextPower - n) prevPower else nextPower
}

fun main() {
    val num = 37u
    
    println("Nearest power of 2: ${roundToNearestPowerOf2(num)}")
}




/*
run:

Nearest power of 2: 32

*/

 



answered Oct 31, 2025 by avibootz
...