Conoscere di un numero la posizione del primo bit da destra impostato a 1
Da Gambas-it.org - Wikipedia.
Per conoscere di un numero la posizione del primo bit da destra impostato a 1, è possibile utilizzare almeno due modalità.
In entrambe le modalità seguenti se il numero è zero, ossia se nessun bit è impostato a 1, sarà restituito: zero.
Uso delle sole risorse di Gambas
Mostriamo un semplice esempio con il numero 8192:
Public Sub Main() Dim e, l As Long l = 8192 Print Bin(l, 64) Do If (CInt(2 ^ e) And l) > 0 Then Break Inc e Loop Inc e Print "Il primo bit da destra posto a 1 è nella "; e; "^ posizione." End
Uso della funzione esterna "ffs()" dichiarata nel file header /usr/include/strings.h
Mostriamo un semplice esempio con il numero 66:
Library "libc:6" ' int ffs (int __i) ' Return the position of the first bit set in 1, or 0 if none are set. Private Extern ffs(i As Integer) As Integer Public Sub Main() Print ffs(66) End