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
*/