Ho la seguente domanda:Perché JDK usa lo spostamento invece di moltiplicare/dividere?
Se viene chiesto se utilizzare uno spostamento rispetto a un moltiplicare o dividere, ad esempio la risposta sarebbe, lasciare ottimizzare la JVM.
Esempio qui: is-shifting-bits-faster-than-multiplying
Ora stavo guardando la fonte JDK, per esempio Priority Queue e il codice utilizza spostando solo sia per moltiplicazione e divisione (firmato e non firmato).
dando per scontato che il posto in SO è la risposta valida Mi chiedevo perché in JDK preferiscono farlo spostando?
E 'un po' sottili dettagli estranei a prestazioni? Sospetto che debba avere qualcosa a che fare con la moltiplicazione e la divisione di over/underflow ma non ne sono sicuro.
Qualcuno ha un'idea? I problemi di overflow sono gestiti meglio utilizzando lo spostamento? O è solo una questione di gusti?
Quindi non è possibile scrivere codice senza bug senza operatore di cambio per subdoli problemi come questo? – Cratylus
@ user384706 Certo che puoi: un semplice operatore ternario qua e là potrebbe aiutarti a fare il trucco. Tuttavia, l'efficienza sta andando a soffrire. – dasblinkenlight
Sarebbe possibile mostrare un esempio di questo? Sarei interessato a conoscere – Cratylus