? Binary Coded Decimal værdier bruger en binær mønster til at repræsentere cifrene nul til ni . Da Visual Basic ikke bruger BCD datatype, har det ikke en indbygget funktion, der konverterer BCD værdier decimalværdier. Men du kan programmere din egen funktion , der vil acceptere input formateret som en BCD værdi og bryde det op i fire -bit nibbles eller klumper , og derefter konvertere dem nipper til et decimaltal. Instruktioner
1
Type " Public Function BCD_to_int ( ByVal input As Long ) " for at åbne din funktion . Bruge en mindre numerisk datatype i stedet for Long for at spare plads , hvis du kender dit program vil ikke arbejde med store tal.
2
Type " Dim temp As Integer " og " Dim decNum som Integer " til at erklære to heltal i din funktion . Type " Dim strNum som String = " "" at erklære en streng og initialisere det med nogen tekst .
3
Type " While Not num = 0 " for at åbne en while-løkke , der vil gentage indtil nummeret funktionen modtager bliver nul . Type " For i = 0 til 3" på den næste linje at begynde en tælles løkke.
4
Type " temp = num Mod 10 " og " num /= 10" på den følgende linje . Den første linje vil isolere den yderste højre ciffer i BCD nummer og gemme det i din " temp " variabel. Den næste linje vil flytte decimal af BCD tallet til venstre .
5.
Type " Hvis temp = 1 Så " for at åbne en betinget kontrol , der afgør , om dit program skal føje til værdien af dit decimaltal. Da du kun brug for at tilføje , når " temp " er lig en, ikke indeholde en " elseif "-klausul for temp svarende nul
6
Indtast følgende kode i din " Hvis" erklæring: .
Hvis temp = 1 Så
p Hvis i = 0 Then
decNum + = 1
EllersHvis i = 1 Så
decNum + = 2
Elseif i = 2 Så
decNum + = 4 fotos
EllersHvis i = 3 Så
decNum + = 8
End If
End If
Disse betingelser tilføje relevante decimal værdi til din samlede baseret på , hvilken af de fire bit i hver nippe det kontrollerer . Den " decNum " variable vil holde decimal værdien af den fire- bit nippe .
7
Type " Next i" på den næste linje at fortælle din "For" loop til at flytte til næste ciffer den nippe . Når dit program har kontrolleret alle fire bits , vil den have beregnet det næste ciffer i dit decimal. Type " strNum = decNum & strNum " for at føje denne værdi til den venstre side af din streng. Type " decNum = 0" for at nulstille denne variabel, før den næste iteration af din while-løkke .
8
Type " End Mens " for at lukke din Mens loop . Type " decNum = strNum " for at tvinge Visual Basic til at konvertere strengen holder din decimal værdi til et heltal og gemme det i " decNum " variable . Du kan derefter manipulere denne variabel efter behov. Skriv " Return decNum " for at sende decimal værdi tilbage til hvor dit program kaldes din funktion fra . Type " End Function " for at lukke funktionen.