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...")
 
Riga 1: Riga 1:
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/strings.h'' .
+
Per conoscere di un numero la posizione del primo bit da destra impostato a 1, è possibile utilizzare almeno due modalità.
  
Se il numero è zero, ossia se nessun bit è impostato a 1, sarà restituito: zero.
+
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: 010000<FONT Color=B22222>1</font>0; pertanto il primo bit a destra impostato ad 1 è il secondo.
 +
<BR>Infatti il risultato del predetto esempio restituisce: 2.
 +
 +
 +
 +
==Uso della funzione ''ffs()'' della libreria esterna di C: ''/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 39:
 
    
 
    
 
  '''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.
 
<BR>Infatti il risultato del predetto esempio restituisce: 2.
 

Versione delle 16:01, 15 ott 2015

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 di C: /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