Differenze tra le versioni di "Conoscere di un numero la posizione del primo bit da destra impostato a 1"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per conoscere di un numero la posizione del primo bit da destra impostato a 1, è possibile utilizzare la funzione ''ffs()'' della libreria esterna di C: ''/usr/include/string...") |
|||
(3 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Per conoscere di un numero la posizione del primo bit da destra impostato a 1, è possibile utilizzare | + | 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: | Mostriamo un semplice esempio con il numero 66: | ||
Library "libc:6" | Library "libc:6" | ||
Riga 17: | Riga 38: | ||
'''End''' | '''End''' | ||
− | |||
− |
Versione attuale delle 03:36, 14 feb 2017
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