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

1 Answer

0 votes
object NearestPowerOf2 {
  /**
   * Rounds a positive integer to the nearest power of 2.
   * return the nearest power of 2
   */
  def roundToNearestPowerOf2(n: Int): Int = {
    if (n <= 0) return 0

    // Compute the previous power of 2 using bit length
    val prevPower = 1 << (31 - Integer.numberOfLeadingZeros(n))
    val nextPower = prevPower << 1

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

  def main(args: Array[String]): Unit = {
    val num = 37
    
    println(s"Nearest power of 2: ${roundToNearestPowerOf2(num)}")
  }
}




/*
run:

Nearest power of 2: 32

*/

 



answered Oct 31, 2025 by avibootz

Related questions

1 answer 72 views
1 answer 81 views
2 answers 173 views
1 answer 159 views
1 answer 85 views
...