19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Il fatto è che sei un pigrone
Aggiungo anche il codice per ottenere il decimale da un binario:Codice: [Seleziona]' Gambas module filePublic Sub Main() Dim b, t, i, e, f As Integer Dim s As String s = "101110011000110" t = Len(s) e = t For i = 1 To t b = CInt(Mid(s, i, 1)) Dec e f += b * 2 ^ e Next Print f; " è la rappresentazione decimale di "; sEnd Ci sarà anche di meglio, ma questo è quanto sono riuscito a combinare oggi
' Gambas module filePublic Sub Main() Dim b, t, i, e, f As Integer Dim s As String s = "101110011000110" t = Len(s) e = t For i = 1 To t b = CInt(Mid(s, i, 1)) Dec e f += b * 2 ^ e Next Print f; " è la rappresentazione decimale di "; sEnd
binario = "101110011000110"Print CInt(Val(binario))
Senza tanti fronzoli:Codice: [Seleziona]binario = "101110011000110"Print CInt(Val(binario))Notare il risultato. Se ti ricordi cosa ho scritto sul libro dovresti sapere il perchè...
Public Sub Form_Open()Dim decimale As IntegerDim i, bit As ByteDim binario As Stringbinario = "101110011000110"For i = Len(binario) To 1 Step -1 bit = CByte(Mid$(binario, i, 1)) If bit = 1 Then decimale += 2 ^ (Len(binario) - i)NextPrint decimaleEnd
adesso dovrebbe funzionare bene:
Public Sub Form_Open()Dim numero As LongDim i, nbit, bitauno As Bytenumero = 23750nbit = CByte(Log2(numero) + 1)For i = 0 To nbit If BTst(numero, i) = True Then Inc bitaunoNextPrint "Il numero di bit a uno è: "; bitaunoEnd