Volevo sapere a quale istruzione corrisponde la "vecchia" SHL dell'assembler in un linguaggio ad alto livello come Visual Basic.
Non mi riferisco però ad una veloce moltiplicazione.
Come posso riprodurla senza grosse operazioni ?
Volevo sapere a quale istruzione corrisponde la "vecchia" SHL dell'assembler in un linguaggio ad alto livello come Visual Basic.
Non mi riferisco però ad una veloce moltiplicazione.
Come posso riprodurla senza grosse operazioni ?
nn ne sono sicuro ma...
credo siano gli operatori
>>
<<
x gli shift....
Dopo qualche ricerca ho trovato l'equivalente per il C e il Turbo Pascal.
Gli operatori << e >> sono per il C.![]()
Originariamente inviato da Mabi
Dopo qualche ricerca ho trovato l'equivalente per il C e il Turbo Pascal.
Gli operatori << e >> sono per il C.![]()
sicuro che x vb nn vadano...
eppure JAVASCRIPT li supporta :|
Non so molto di VB, ma so solo che gli operatori di bit non ci sono. Io lo rifarei "alla rozza" come una moltiplicazione per una potenza di 2. Alternative migliori forse esistono, ma non ne conosco. :quipy:
ciao
il mnemonico SHL indica l'istruzione per lo scorrimento logico dei bit verso sinistra e operando sul registro
........ vb non opera sui registri in immediato, ma vi opera in interpretato.
esempio:
mov ax,0000000001001001b ;equivale a 73
shl ax, 1
scorre di una posizione i bit verso dx, questo significa che hai eseguito una ^2, 73*2
ax=0000000010010010 = 146
se ancora shl ax, 1
eseguito una ^3, 146*2
ax=0000000100100100 = 292
velocità 3 cicli di clock (mostruoso)
in vb:
ax=73
for i=1 to 2 '10 per divertimento
ax=ax*2 ;lo scorrimento è interpretato (+ che lentisssimo)
next i
Io sapevo che per grossi numeri (ad esempio 6677AFAF) non era possibile semplificare lo shift con una moltiplicazione.Originariamente inviato da Mabi
Non mi riferisco però ad una veloce moltiplicazione.