Newsgroup: it.comp.lang.visual-basic
Titolo: Valore binario

Salve a tutti!
E' possibile in vb ricavare la rappresentazione binaria di un numero
decimale?
Ciao e grazie


Prova con questa funzione (l'ho buttata giů al volo, č bruttina e funziona
solo
con valori interi, ma č facile modificarla!)
function Bin(i as integer) as string
    '
    dim j as integer
    dim mask as long
    dim out as string
    '
    mask = 1
    for i = 0 to 15
        if i and mask then
            out = "1"+out
        else
            out = "0"+out
        endif
        mask = mask * 2    ' in VB non c'e' <<
    next
    Bin = Out
end function
Saluti, Massimo

con valori interi, ma č facile modificarla!)
Forse sbaglio qualcosa, come risultato mi da sempre e solo tutti 0
Dim Pippo As Integer
Dim Pallo
Pippo = 5
pallo = Bin(Pippo)
Text1.Text = pallo
Grazie!!

Eccoti un paio di funzioni non sono il massimo...anzi!!!
Public Function DecToBin(Numero As Double) As String
 Dim tmpstr As String, i As Integer
 tmpstr = ""
 DecToBin = ""
 If Numero > 0 Then
  Do Until Numero = 0
   tmpstr = tmpstr & CStr(Numero Mod 2)
   Numero = Numero \ 2
  Loop
  For i = Len(tmpstr) To 1 Step -1
   DecToBin = DecToBin & Mid(tmpstr, i, 1)
  Next i
 Else
  DecToBin = "0"
 End If
End Function
Public Function BinToDec(bin As String) As Double
 Dim i As Integer, lung As Integer
 If Len(bin) > 0 Then
  BinToDec = 0
  lung = Len(bin)
  For i = lung To 1 Step -1
   If Mid(bin, (lung + 1) - i, 1) <> "0" Then
    BinToDec = BinToDec + 2 ^ (i - 1)
   End If
  Next i
 End If
End Function


Certo, basta che ti scrivi una funzione che traduce un numero (decimale) in
stringa (rappresentazione binaria).
Per l'algoritmo, puoi semplicemente usare quello che faresti a mano (o a
mente)...
Figurati che lo insegnano anche alle elementari! :-)
--
Roal Zanazzi
z...@iol.it

Ecco la mia soluzione (che pero' converte qualsiasi numero) in una
nuova base:
Scusate per gli attachment ma sono moolto piccoli
==============================================================
Tutto quello che non c'e' non si puo' rompere
cte...@tin.it
==============================================================

decimale?
Io ti do uno spunto: per ottenere la rappresentazione binaria di un numero
decimale (non frazionario) basta iterare l'istruzione numero=int(numero/2) e, ad
ogni iterazione, immagazzinare il resto della divisione (che sara' sempre 0 o
1). Quando quoziente=0 termino l'iterazione.
A questo punto basta rileggere i numeri immagazzinati, ma in senso inverso, e si
ottiene la rappresentazione binaria del numero iniziale.
Con oppurtuni cambiamenti ed accorgimenti, questo metodo puo' essere utilizzato
per convertire la rappresentazione di un numero da una base minore o uguale a 10
e maggiore o uguale a 2 ad una qualsiasi di base minore della base di partenza
(ma maggiore di zero, ovviamente).
~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~
Gabriele Bertolucci - NT4WKSITA+SP3 - VB5PROITA+SP3
pbe...@vi.ats.it
pbe...@freemail.it
 (alias)
pbe...@bigfoot.com
 (alias)
http://members.spree.com/sip/pberto/
http://userspace.ats.it/free/pberto/
 (alias)
http://www.fortunecity.com/skyscraper/spiff/523/
 (alias)
http://www.bigfoot.com/~pberto/
 (alias)
ICQ #: 9732192
~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~

decimale?
Certamente.
Ti ho creato un progettino ad hoc. Converte un numero decimale in una base
minore. Te lo mando via email.
Ovviamente puo' essere migliorato sia a livello di grafica che per quanto
riguarda l'ottimizzazione del codice, ma adesso mi serviva solamente per farti
un esempio.
p.s.: se qualcun altro e' interessato, non fa che dirmelo, ovviamente via e-mail
per non intasare il gruppo.
p.s.2.: non sarei propenso a postarlo in area ftp perche' non e' per niente
curato, soprattutto dal punto di vista del codice. Voi che ne dite?


minore. Te lo mando via email.
Lo puoi inviare anche a me, per favore?
Grazie
Zeus