Differenze tra le versioni di "Sapere quanti bit posti ad 1 sono presenti in un numero"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Per sapere quanti bit posti ad 1 sono presenti in un numero, è possibile utilizzare alcune modalità.
 
Per sapere quanti bit posti ad 1 sono presenti in un numero, è possibile utilizzare alcune modalità.
 +
 +
 +
===Uso della funzione specifica ''BTst( )''===
 +
Innanzitutto mostriamo una soluzione semplice utilizzando la funzione specifica ''BTst( )'':  <SUP>&#91;[[#Note|nota 1]]&#93;</sup>
 +
'''Public''' Sub Main()
 +
 
 +
  Dim numero, i, bitauno As Byte
 +
 
 +
  numero = 165
 +
 
 +
  For i = 0 To 7
 +
    If BTst(numero, i) = True Then Inc bitauno
 +
  Next
 +
 
 +
  Print "Il numero di bit a uno è: "; bitauno
 +
 +
'''End'''
 +
  
  
Riga 22: Riga 40:
  
 
===Uso dell'operatore aritmetico ''Mod''===
 
===Uso dell'operatore aritmetico ''Mod''===
  '''Public''' Sub Main()  <SUP>&#91;[[#Note|nota 1]]&#93;</sup>
+
  '''Public''' Sub Main()  <SUP>&#91;[[#Note|nota 2]]&#93;</sup>
 
    
 
    
 
   Dim n, b, c As Integer
 
   Dim n, b, c As Integer
Riga 44: Riga 62:
  
 
=Note=
 
=Note=
[1] Questa soluzione è stata proposta dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum www.gambas-it.org
+
[1] Questa soluzione è stata proposta dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1038 TopFuel] del forum www.gambas-it.org
 +
 
 +
[2] Questa soluzione è stata proposta dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum www.gambas-it.org

Versione delle 11:31, 20 nov 2016

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


Uso della funzione specifica BTst( )

Innanzitutto mostriamo una soluzione semplice utilizzando la funzione specifica BTst( ): [nota 1]

Public Sub Main()
 
 Dim numero, i, bitauno As Byte
 
  numero = 165
  
  For i = 0 To 7
    If BTst(numero, i) = True Then Inc bitauno
  Next
  
  Print "Il numero di bit a uno è: "; bitauno
End


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 2]
 
 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 TopFuel del forum www.gambas-it.org

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