Differenze tra le versioni di "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.
(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...")
 
 
(11 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
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''.
 
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''
+
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libglib-2.0.so.0.8200.4'' ".
  
  
 
===Operazione con l'operando ''AND''===
 
===Operazione con l'operando ''AND''===
 
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 And 9.
 
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 And 9.
  Library "libglib-2.0"
+
  Library "libglib-2.0:0.8200.4"
 
   
 
   
 
  <FONT Color=gray>' ''guint g_atomic_int_and (volatile guint *atomic, guint val)''
 
  <FONT Color=gray>' ''guint g_atomic_int_and (volatile guint *atomic, guint val)''
Riga 13: Riga 13:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim p As Pointer
 
   Dim p As Pointer
 
   Dim i As Integer
 
   Dim i As Integer
 
    
 
    
  i = 14
+
  i = 14
 
      
 
      
  p = VarPtr(i)
+
  p = VarPtr(i)
   
 
  g_atomic_int_and(p, 9)
 
 
 
  Print Int@(p)
 
 
    
 
    
 +
  g_atomic_int_and(p, 9)
 +
 
 +
  Print Int@(p)
 +
 
 
  <FONT Color=gray>' ''Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "AND" nativo di Gambas:''</font>
 
  <FONT Color=gray>' ''Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "AND" nativo di Gambas:''</font>
  Print 14 And 9
+
  Print 14 And 9
 
    
 
    
  '''End'''
+
  End
  
  
 
===Operazione con l'operando ''OR''===
 
===Operazione con l'operando ''OR''===
 
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 OR 9.
 
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 OR 9.
  Library "libglib-2.0"
+
  Library "libglib-2.0:0.8200.4"
 
   
 
   
 
  <FONT Color=gray>' ''guint g_atomic_int_or (volatile guint *atomic, guint val)''
 
  <FONT Color=gray>' ''guint g_atomic_int_or (volatile guint *atomic, guint val)''
Riga 41: Riga 41:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim p As Pointer
 
   Dim p As Pointer
 
   Dim i As Integer
 
   Dim i As Integer
 
    
 
    
  i = 14
+
  i = 14
   
 
  p = VarPtr(i)
 
   
 
  g_atomic_int_or(p, 9)
 
 
    
 
    
  Print Int@(p)
+
  p = VarPtr(i)
 
    
 
    
 +
  g_atomic_int_or(p, 9)
 +
 
 +
  Print Int@(p)
 +
 
 
  <FONT Color=gray>' ''Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "OR" nativo di Gambas:''</font>
 
  <FONT Color=gray>' ''Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "OR" nativo di Gambas:''</font>
  Print 14 or 9
+
  Print 14 Or 9
 
    
 
    
  '''End'''
+
  End
  
  
 
===Operazione con l'operando ''XOR''===
 
===Operazione con l'operando ''XOR''===
 
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 XOR 9.
 
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 XOR 9.
  Library "libglib-2.0"
+
  Library "libglib-2.0:0.8200.4"
 
   
 
   
 
  <FONT Color=gray>' ''guint g_atomic_int_xor (volatile guint *atomic, guint val)''
 
  <FONT Color=gray>' ''guint g_atomic_int_xor (volatile guint *atomic, guint val)''
Riga 69: Riga 69:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim p As Pointer
 
   Dim p As Pointer
 
   Dim i As Integer
 
   Dim i As Integer
    
+
  i = 14
+
   i = 14
   
 
  p = VarPtr(i)
 
   
 
  g_atomic_int_xor(p, 9)
 
 
    
 
    
  Print Int@(p)
+
  p = VarPtr(i)
 
    
 
    
 +
  g_atomic_int_xor(p, 9)
 +
 
 +
  Print Int@(p)
 +
 
 
  <FONT Color=gray>' ''Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "XOR" nativo di Gambas:''</font>
 
  <FONT Color=gray>' ''Effettuiamo una verifica del risultato precedente, usando esclusivamente l'operando "XOR" nativo di Gambas:''</font>
  Print 14 or 9
+
  Print 14 Xor 9
 
+
 
  '''End'''
+
  End
 +
 
 +
 
 +
 
 +
=Riferimenti=
 +
* https://docs.gtk.org/glib/func.usleep.html?q=g_atomic

Versione attuale delle 14:58, 16 dic 2024

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 condivisa: "libglib-2.0.so.0.8200.4 ".


Operazione con l'operando AND

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

Library "libglib-2.0:0.8200.4"

' 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:0.8200.4"

' 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:0.8200.4"

' 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 Xor 9
 
End


Riferimenti