Precedenza degli operatori

di dobby il
4 risposte

Non so se è il posto giusto come sezione, diciamo che è una divagazione

Ho fatto due test in basic con varie versioni.

Se scrivo 

print 2*3^2

giustamente mi dice 18 risolvendo prima l'elevamento al quadrato.

Se scrivo 

print 2^3^2

mi dice 64, ma la precedenza non dovrebbe essere prima all'esponente, quindi dare 2^9?

4 Risposte

  • Nella potenza di potenza l'esponente è il prodotto dei due esponenti (che è commutativo), quindi 2^3^2=2^2^3=2^6=64.

    Anche rispettando la precedenza: (2^3)^2 = 8^2 = 64.

  • La domanda era legittima perché

    (2^3)^2 = 8^2 = 64

    mentre

    2^(3^2) = 2^9 = 512

    Nel dubbio usate le parentesi e fate prima

  • La soluzione giusta sembra che sia 512 perché si parte dall’esponente diciamo più esterno per poi scendere.
    Senza parentesi non è una potenza di potenze ma una potenza con esponente che viene elevato.

    Sarebbe come scrivere a^b

    a=2
    b=3^2

    è un discorso molto accademico che ho visto qualche tempo fa. In realtà in questi casi come suggerito da Weierstrass io uso le parentesi quando ci sono incertezze.

    Cmq grazie per le risposte e il tempo.

Devi accedere o registrarti per scrivere nel forum
4 risposte