Sostituire gli operatori logici di spostamento dei bit con semplici operazioni
Come è noto, nel linguaggio C fra gli operatori cosiddetti bitwise, ossia quegli operatori capaci di operare sui singoli bit, vi sono anche gli operatori di spostamento (shift) dei bit, che effettuano un spostamento a sinistra di un bit:
<<
oppure uno spostamento a destra:
>>
Lo spostamento del bit interessato avviene di un nuomero diposizioni eguale al valore del secondo operando.
Lo spostamento in Gambas
In Gambas, come si sa, esistono due funzioni specifiche:
Shl(valore, spostamento)
e
Shr(valore, spostamento)
per effettuare lo spostamento dei bit a sinistra o destra, ma possiamo ottenere lo stesso risultato mediante semplici operazioni.
Operazione per lo spostamento a sinistra
Per ottenere lo spostamento a sinistra di un bit si effettuerà una moltiplicazione del valore del bit da spostare per 2 elevato alla potenza determinata dal valore del secondo operando, ossia del numero dello spostamento delle posizioni da effettuarsi:
a << b → a * 2b
Esempio:
6 << 3 → a * 23 → 6 * 8 → 48
Operazione per lo spostamento a destra
Per ottenere lo spostamento a destra di un bit si effettuerà una divisione del valore del bit da spostare per 2 elevato alla potenza determinata dal valore del secondo operando, ossia del numero dello spostamento delle posizioni da effettuarsi:
a >> b → a / 2b
Esempio:
16 >> 3 → 16 / 23 → 16 / 8 → 2