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

1 Answer

0 votes
import Foundation

/// Rounds a positive unsigned integer to the nearest power of 2.
func roundToNearestPowerOf2(_ n: UInt32) -> UInt32 {
    guard n > 0 else { return 0 }

    // Compute the previous power of 2 using leadingZeroBitCount
    let prevPower = UInt32(1) << (31 - n.leadingZeroBitCount)
    let nextPower = prevPower << 1

    return (n - prevPower < nextPower - n) ? prevPower : nextPower
}

let num: UInt32 = 37

print("Nearest power of 2: \(roundToNearestPowerOf2(num))")



/*
run:

Nearest power of 2: 32

*/

 



answered Oct 31, 2025 by avibootz

Related questions

1 answer 74 views
1 answer 87 views
4 answers 225 views
2 answers 203 views
1 answer 167 views
1 answer 517 views
...