Verificare se un numero è una potenza di 2

Da Gambas-it.org - Wikipedia.
Versione del 1 lug 2024 alle 16:02 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per verificare se un numero è una potenza di 2, si possono utilizzare almeno le seguenti due modalità.


Prima modalità

Public Sub Main()
 
  Dim numero, m, c As Integer
  Dim s1, s2 As String
 
  m = 1
  numero = 16

  While m > 0
    If (numero And m) > 0 Then
       Inc c
    Endif
      m = m * CInt(2 * 1)
  Wend
 
  s1 = "Il numero " & numero
  s2 = " è una potenza di 2"
 
  If c = 1 Then
    Print s1; s2
  Else
    Print s1; " non"; s2
  Endif
  
End


Seconda modalità

Public Sub Main()
 
  Dim numero As Integer
  Dim s As String
 
  s = " è una potenza di 2"
 
  numero = 16
  
  Print IIf(Frac(Log2(numero)) = 0, numero & s, numero & " non" & s)
   
End