View Single Post
Old 24-10-2016, 05:53   #59
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Ne abbiamo parlato in privato, ma appena posso mi smazzo il lungo PVT e ti rispondo.

Rispondo soltanto a questo, che avevo perso di vista:
Quote:
Originariamente inviato da fano Guarda i messaggi
Il trucco vale per tutti i multipli di 2 quindi: divisione per 4 == shift a destra di 2!
Assolutamente sì per i numeri senza segno, e no per quelli con segno.

In generale in quest'ultimo caso vale la seguente:
Codice:
x / 2^n = (x + (2^n - 1 if x < 0 else 0)) >> n
Quote:
Per il modulo sempre per multipli di 2:
x % 2n == x & (2n - 1)

quindi per esempio: x % 4 == x & 3

https://en.wikipedia.org/wiki/Modulo_operation
Occhio a come il linguaggio definisce le divisioni quando gli operandi hanno il segno. Il modulo potrebbe essere dotato di segno.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso