Sapere quanti bit posti ad 1 sono presenti in un numero

Da Gambas-it.org - Wikipedia.

Per sapere quanti bit posti ad 1 sono presenti in un numero, è possibile utilizzare alcune modalità.


Uso delle funzioni Bin( ) e Mid( )

Public Sub Main()
 
 Dim i, numero, c As Integer
 Dim binario As String
 
  numero = 1234567890
  binario = Bin(numero)
  
  For i = 1 To len(binario)
    If Mid(binario, i, 1) = "1" Then Inc c
  Next
  
  Print numero; " contiene "; c; " bit posti a 1  ("; binario; ")"
  
End


Uso dell'operatore aritmetico Mod

Public Sub Main()   [nota 1]
 
 Dim n, b, c As Integer
 
  n = 165
  
  Print "La rappresentazione binaria di "; n; " è "; 
  
  While n > 0
    b = n Mod 2
    Print b;
    If b <> 0 Then Inc c
    n = n \ 2
  Wend
  Print " e contiene "; c; " bit posti a 1"
  
End



Note

[1] Questa soluzione è stata proposta dal membro Gianluigi del forum www.gambas-it.org