? Binærkodete Desimalverdier bruke et binært mønster til å representere tallene null til ni . Som Visual Basic ikke bruker BCD datatype , betyr det ikke har en innebygd funksjon som konverterer BCD verdier til desimaltall . Men du kan programmere din egen funksjon som vil godta inndata formatert som en BCD verdi og dele den opp i fire -bits napp , eller biter , og deretter konvertere disse småspising til et desimaltall . Instruksjoner
en
Type " Public Function BCD_to_int ( ByVal inngang Som Long) " for å åpne din funksjon . Bruk en mindre numerisk datatype i stedet for Long for å spare plass hvis du vet at programmet ikke vil fungere med store tall.
2
Type " Dim temp As Integer " og " Dim decNum som Integer " å erklære to heltall i funksjon din . Type " Dim strNum som String =" "" for å erklære en streng og starte den uten tekst.
3
Type " Mens Ikke num = 0 " for å åpne en while-loop som vil gjenta til tallet funksjonen mottar blir null . Type " For i = 0 til 3" på neste linje for å begynne en telles loop.
4
Type " temp = num Mod 10" og " num /= 10 " på følgende linje . Den første linjen vil isolere lengst til høyre siffer i BCD nummer og lagre den i " temp " variable . Den neste linjen vil flytte desimal av BCD nummeret til venstre .
5
Type " Hvis temp = 1 Deretter " for å åpne en betinget sjekk som avgjør om ditt program må legge til verdien av din desimaltall . Siden du kun trenger å legge til når " temp " er lik én , ikke inkludere en " elseif " eksplisitt for temp tilsvarer null
6
Skriv inn følgende kode i "If" statement : .
p Hvis temp = 1 Deretter
p Hvis i = 0 Then
decNum + = 1
ElseIf i = 1 Deretter
decNum + = 2
ElseIf i 2 = Så
decNum + = 4
ElseIf i 3 = Så
decNum + = 8
End If
End If
Disse forholdene legger riktig desimal verdi til total din basert på hvilken av de fire biter i hver bite det sjekker . Den " decNum " variable vil holde desimal verdien av de fire- bit bite .
7
Type " Neste i" på neste linje for å fortelle din "For " loop for å gå til neste siffer i den småspise. Når programmet har sjekket alle fire biter , vil det ha regnet det neste sifferet i desimal din . Type " strNum = decNum & strNum " for å legge denne verdien til venstre side av strengen din . Type " decNum = 0 " for å nullstille denne variabelen før neste iterasjon av mens loop.
8
Type " End While " for å lukke Mens loop. Type " decNum = strNum " å tvinge Visual Basic for å konvertere strengen holder desimal verdi i et heltall og lagre den i " decNum " variable . Du kan deretter manipulere denne variabelen etter behov. Skriver "Return decNum " for å sende desimalverdien tilbake til der programmet kalles funksjon fra . Type " End Function" for å lukke funksjonen .