Conoscere di un numero la posizione del primo bit da destra impostato a 1
Da Gambas-it.org - Wikipedia.
Versione del 14 feb 2017 alle 03:36 di Vuott (Discussione | contributi)
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) While True If (CInt(2 ^ e) And l) > 0 Then Break Inc e Wend Inc e Print "Il primo bit da destra posto a 1 è nella "; e; "^ posizione." End
Uso della funzione ffs() della libreria esterna "/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