Differenze tra le versioni di "Conoscere di un numero la posizione del primo bit da destra impostato a 1"
Da Gambas-it.org - Wikipedia.
Riga 19: | Riga 19: | ||
'''End''' | '''End''' | ||
− | La rappresentazione binaria del numero 66 è la seguente: 010000<FONT Color=B22222>1</font>0; pertanto il primo bit a destra impostato ad 1 è il secondo. | + | La rappresentazione binaria del numero 66 è la seguente: 010000<FONT Color=B22222><B>1</b></font>0; pertanto il primo bit a destra impostato ad 1 è il secondo. |
<BR>Infatti il risultato del predetto esempio restituisce: 2. | <BR>Infatti il risultato del predetto esempio restituisce: 2. | ||
Versione delle 19:44, 13 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 66:
Public Sub Main() Dim bi As String Dim n, i As Integer n = 66 bi = Bin(n) i = Len(bi) - (RInStr(bi, "1") - 1) if n = 0 then i = 0 Print i End
La rappresentazione binaria del numero 66 è la seguente: 01000010; pertanto il primo bit a destra impostato ad 1 è il secondo.
Infatti il risultato del predetto esempio restituisce: 2.
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