? Binärkodade Decimalvärden använder ett binärt mönster för att representera siffrorna noll till nio . Som Visual Basic inte använder BCD datatypen , har den inte en inbyggd funktion som konverterar BCD värden till decimala värden . Men du kan programmera din egen funktion som accepterar indata formateras som en BCD värde och dela upp den i fyra - bitars napp , eller bitar , och sedan konvertera dessa tilltugg till ett decimaltal . Instruktioner
1
Type " Public Function BCD_to_int ( ByVal ingång As Long ) " för att öppna din funktion . Använd en mindre numerisk datatyp i stället för långa för att spara utrymme om du vet ditt program inte kommer att arbeta med stora siffror .
2
Type " Dim temp As Integer " och " Dim decNum As Integer " att deklarera två heltal i din funktion . Typ " Dim strNum som String = " " " att deklarera en sträng och initiera den med ingen text .
3
Type " Medan Inte num = 0 " för att öppna en while-slinga som repeteras tills numret funktionen tar emot blir noll . Typ " För i = 0 till 3 " på nästa rad för att börja ett räknat loop .
4
Type " temp = num Mod 10 " och " num /= 10 " på följande rad . Den första raden kommer att isolera siffran längst till höger i BCD numret och förvara det i din " temp " variabel . Nästa rad flytta decimal av BCD siffran till vänster .
5
Type " Om temp = 1 Then " för att öppna en villkorlig kontroll som avgör om ditt program måste lägga till värdet av din decimaltal . Eftersom du bara behöver lägga till när " temp " är lika med ett , inkluderar inte en " elseif " klausul för temp lika noll
6
Skriv följande kod i din " Om " uttalande : .
p Om temp = 1 Då
p Om i = 0 Then
decNum + = 1
ElseIf i = 1 Då
decNum + = 2
ElseIf i = 2 Därefter
decNum + = 4
ElseIf i = 3 Då
decNum + = 8
End If
End If
Dessa villkor lägga den lämpliga decimala värdet på ditt totala baserat på vilken av de fyra bitarna i varje nibble den kontrollerar . Den " decNum " variabel kommer att hålla det decimala värdet av de fyra - bitars nibble .
7
Type " Next jag " på nästa rad för att berätta för din " För " slinga för att gå till nästa siffra i den nibble . När ditt program har kontrollerat alla fyra bitar , kommer det att ha beräknat den nästa siffran i din decimal . Typ " strNum = decNum & strNum " för att lägga till detta värde till den vänstra sidan av strängen . Typ " decNum = 0 " för att återställa denna variabel innan nästa iteration av din while-slinga .
8
Type " Slutet Medan " att stänga din while-slinga . Typ " decNum = strNum " tvinga Visual Basic för att konvertera strängen håller din decimaltal till ett heltal och lagra den i " decNum " variabel . Du kan då manipulera denna variabel som behövs . Skriv " Return decNum " för att skicka det decimala värdet tillbaka till där ditt program kallat din funktion från . Skriv " End Function " för att stänga av funktionen .