Modules |
5.16 Conversione in binario di un numero in base 10 |
Christian Pozzati |
Non avendo trovato nessun modulo o funzione già pronta su Access per convertire un numero in binario ho creato un piccolo modulo per fare ciò. Qui sotto il codice di questo piccolo modulo utile per la funzione di conversione di numeri decimali e con piccola modifica anche quelli esadecimali. La utilizzo per abilitare diverse opzioni per un record usando un solo campo Esempio 45 = 101101 bit 1 = 1 opzione 1 attivata bit 2 = 0 opzione 2 disattivata bit 3 = 1 opzione 3 attivata bit 4 = 1 opzione 4 attivata bit 5 = 0 opzione 5 disattivata bit 6 = 1 opzione 6 attivata per evitare problemi di solito io utilizzo un binario formattato 00101101 su 8 bit. Sicuramente ci saranno altri metodi comunque questo funziona egregiamente. Public Function binaryCNV(Number, nbit As Integer, formated As Boolean) As String '********************************************************************************************************* ' Funzione che converte un qualsiasi numero decimale in binario ' Number è il numero in base 10 ' nbit è il numero di bit su cui articolare il numero binario ' formated = True se il numero binario deve essere formattato e False nel caso contrario Dim j, nt, st, sf, nzero Do While Number > 0 nt = Int(Number Mod 2) Number = Int(Number / 2) If nt > 0 Then st = "1" Else st = "0" End If sf = st & sf Loop If formated = True Then binaryCNV = String(nbit - Len(sf), "0") & sf Else binaryCNV = sf End If End Function La funzione è stata provata su Access 97 e su Access 2000, ma si ritiene che funzioni su tutte le versioni di Access. |