Effettuare con le funzioni Glib-2.0 alcune operazioni sui bit di un valore di una variabile puntata da un Puntatore

Da Gambas-it.org - Wikipedia.
Versione del 28 ott 2015 alle 16:24 di Vuott (Discussione | contributi) (Creata pagina con "La libreria ''Glib'' ci consente con alcune sue funzioni di effettuare operazioni sui bit (''bitwise'') del tipo ''AND'', ''OR'' e ''XOR'' diun valore contenuto in una variabi...")

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

La libreria Glib ci consente con alcune sue funzioni di effettuare operazioni sui bit (bitwise) del tipo AND, OR e XOR diun valore contenuto in una variabile Integer puntata da un Puntatore.

E' necessario avere installata nel sistema e richiamare in Gambas la libreria dinamica condivisa: libglib-2.0.so


Operazione con l'operando AND

Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 And 9.

Library "libglib-2.0"

' guint g_atomic_int_and (volatile guint *atomic, guint val)
' Performs an atomic bitwise 'and' of the value of atomic and val, storing the result back in atomic.
Private Extern g_atomic_int_and(atomic As Pointer, gval As Integer) As Integer


Public Sub Main()
 
 Dim p As Pointer
 Dim i As Integer
 
  i = 14
   
  p = VarPtr(i)
   
  g_atomic_int_and(p, 9)
  
  Print Int@(p)
  
' Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "AND" nativo di Gambas:
  Print 14 And 9
  
End


Operazione con l'operando OR

Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 OR 9.

Library "libglib-2.0"

' guint g_atomic_int_or (volatile guint *atomic, guint val)
' Performs an atomic bitwise 'or' of the value of atomic and val, storing the result back in atomic.
Private Extern g_atomic_int_or(atomic As Pointer, gval As Integer) As Integer


Public Sub Main()
 
 Dim p As Pointer
 Dim i As Integer
 
  i = 14
   
  p = VarPtr(i)
   
  g_atomic_int_or(p, 9)
  
  Print Int@(p)
  
' Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "OR" nativo di Gambas:
  Print 14 or 9
  
End


Operazione con l'operando XOR

Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 XOR 9.

Library "libglib-2.0"

' guint g_atomic_int_xor (volatile guint *atomic, guint val)
' Performs an atomic bitwise 'xor' of the value of atomic and val, storing the result back in atomic.
Private Extern g_atomic_int_xor(atomic As Pointer, gval As Integer) As Integer


Public Sub Main()
 
 Dim p As Pointer
 Dim i As Integer
 
  i = 14
   
  p = VarPtr(i)
   
  g_atomic_int_xor(p, 9)
  
  Print Int@(p)
  
' Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "XOR" nativo di Gambas:
  Print 14 or 9
  
End