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.
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 | + | E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libglib-2.0.so.0.6400.6'' ". |
===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.6400.6" |
<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 18: | Riga 18: | ||
Dim i As Integer | Dim i As Integer | ||
− | + | i = 14 | |
− | + | p = VarPtr(i) | |
− | |||
− | |||
− | |||
− | |||
+ | 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 | |
'''End''' | '''End''' | ||
Riga 34: | Riga 34: | ||
===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.6400.6" |
<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 46: | Riga 46: | ||
Dim i As Integer | Dim i As Integer | ||
− | + | i = 14 | |
− | |||
− | |||
− | |||
− | |||
− | + | 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 | |
'''End''' | '''End''' | ||
Riga 62: | Riga 62: | ||
===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.6400.6" |
<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 73: | Riga 73: | ||
Dim p As Pointer | Dim p As Pointer | ||
Dim i As Integer | Dim i As Integer | ||
− | + | ||
− | + | i = 14 | |
− | |||
− | |||
− | |||
− | |||
− | + | 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 Xor 9 | |
− | + | ||
'''End''' | '''End''' |
Versione delle 16:53, 9 dic 2021
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.6400.6 ".
Operazione con l'operando AND
Mostriamo un esempio pratico, nel quale si effettuerà l'operazione: 14 And 9.
Library "libglib-2.0:0.6400.6" ' 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.6400.6" ' 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.6400.6" ' 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