Sostituire gli operatori logici di spostamento dei bit con semplici operazioni

Da Gambas-it.org - Wikipedia.
Versione del 25 giu 2013 alle 09:54 di Vuott (Discussione | contributi) (Creata pagina con '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...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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