Autore Topic: Compitino per casa sui bit  (Letto 628 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #15 il: 21 Novembre 2016, 13:13:17 »
Argh!!!
Mi sono distratto un secondo e avete già fatto!! :rolleyes:
Imparo e permango in ultimo banco col cappello da asino, ma con le orecchie aperte!! :P
 :ciao: :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #16 il: 21 Novembre 2016, 13:19:11 »
Si, si, si fa finta di passar per bischeri!  :P :P
Il fatto è che sei un pigrone  ;D

Comunque il Maestro non ha ancora elargito completamente la sua sapienza (leggi sua soluzione)   :-\

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #17 il: 21 Novembre 2016, 14:07:36 »
Citazione
Il fatto è che sei un pigrone  ;D
...ehm... ho la giustifica.
Ero indisposto!  ;D

Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #18 il: 21 Novembre 2016, 19:05:24 »
Aggiungo anche il codice per ottenere il decimale da un binario:
Codice: [Seleziona]
' Gambas module file

Public 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 "; s

End



Ci sarà anche di meglio, ma questo è quanto sono riuscito a combinare oggi  ;D
 :ciao: :ciao:

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è... ;)
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #19 il: 21 Novembre 2016, 21:07:33 »

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è... ;)

 ???
A me non funziona  :-\
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #20 il: 21 Novembre 2016, 21:15:51 »
Si, hai ragione, stavolta ho cannato io.
Proverò a rifarlo.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #21 il: 21 Novembre 2016, 22:35:42 »
Rifatto, adesso dovrebbe funzionare bene:

Codice: [Seleziona]
Public Sub Form_Open()
Dim decimale As Integer
Dim i, bit As Byte
Dim binario As String
binario = "101110011000110"
For i = Len(binario) To 1 Step -1
   bit = CByte(Mid$(binario, i, 1))
   If bit = 1 Then decimale += 2 ^ (Len(binario) - i)
Next
Print decimale
End
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #22 il: 22 Novembre 2016, 00:04:55 »
adesso dovrebbe funzionare bene:
L'ho aggiunto come ulteriore modalità di conversione nell'apposita pagina della nostra WIKI:

http://www.gambas-it.org/wiki/index.php?title=Convertire_un_numero_da_rappresentazione_binaria_in_decimale
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #23 il: 22 Novembre 2016, 00:14:46 »
Ulteriore oDore. :)
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Compitino per casa sui bit
« Risposta #24 il: 24 Novembre 2016, 23:11:57 »
Versione migliorata dell'esercizio che calcola quanti bit è lungo il numero, quindi indipendente dal tipo di variabile numerica (intera, ovviamente):

Codice: [Seleziona]
Public Sub Form_Open()
Dim numero As Long
Dim i, nbit, bitauno As Byte
numero = 23750
nbit = CByte(Log2(numero) + 1)
For i = 0 To nbit
   If BTst(numero, i) = True Then Inc bitauno
Next
Print "Il numero di bit a uno è: "; bitauno
End
« Ultima modifica: 24 Novembre 2016, 23:42:51 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.