Differenze tra le versioni di "Conoscere di un numero la posizione del primo bit da destra impostato a 1"
Da Gambas-it.org - Wikipedia.
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 4: | Riga 4: | ||
==Uso delle sole risorse di Gambas== | ==Uso delle sole risorse di Gambas== | ||
− | Mostriamo un semplice esempio con il numero | + | 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 | + | ==Uso della funzione esterna "ffs()" dichiarata nel file header ''/usr/include/strings.h''== |
Mostriamo un semplice esempio con il numero 66: | Mostriamo un semplice esempio con il numero 66: | ||
Library "libc:6" | Library "libc:6" | ||
Riga 33: | Riga 33: | ||
− | + | Public Sub Main() | |
Print ffs(66) | Print ffs(66) | ||
− | + | End |
Versione attuale delle 15:59, 1 lug 2024
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