Saltar al contenido

Operador de exponenciación en Swift

Solución:

No hay un operador, pero puede usar la función pow de esta manera:

return pow(num, power)

Si lo desea, también puede hacer que un operador llame a la función pow de esta manera:

infix operator ** { associativity left precedence 170 }

func ** (num: Double, power: Double) -> Double{
    return pow(num, power)
}

2.0**2.0 //4.0

Si aumenta 2 a algo de potencia, puede usar el operador de desplazamiento a la izquierda bit a bit:

let x = 2 << 0    // 2
let y = 2 << 1    // 4
let z = 2 << 7    // 256

Observe que el valor de ‘potencia’ es 1 menos de lo que podría pensar.

Tenga en cuenta que esto es más rápido que pow(2.0, 8.0) y le permite evitar tener que usar dobles.

Para cualquiera que busque una versión Swift 3 del ** operador infijo:

precedencegroup ExponentiationPrecedence {
  associativity: right
  higherThan: MultiplicationPrecedence
}

infix operator ** : ExponentiationPrecedence

func ** (_ base: Double, _ exp: Double) -> Double {
  return pow(base, exp)
}

func ** (_ base: Float, _ exp: Float) -> Float {
  return pow(base, exp)
}

2.0 ** 3.0 ** 2.0    // 512
(2.0 ** 3.0) ** 2.0  // 64
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *