28. august 2003 - 20:20Der er
4 kommentarer og 2 løsninger
Konvertering fra decimal til binær og tilbage
Meget simpelt jeg har et decimal tal jeg gerne vil konvertere til binær, og tilbage igen...
derefter skal tallene smides i variabler for sig selv, f.eks. 12 = 1100, det skal deles ud i fire variabler bin0, bin1, bin2, bin3... sådan at bin0 = 0 bin1 = 0 bin2 = 1 bin3 = 1
Private Function Dec2Bin(Dec As Long) As String buf = Dec Dec2Bin = "" For I = 15 To 0 Step -1 If 2 ^ I <= Dec Then Dec2Bin = Dec2Bin + "1" Dec = Dec - 2 ^ I Else Dec2Bin = Dec2Bin + "0" End If Next I Dec = buf Do If Left(Dec2Bin, 1) = "0" Then Dec2Bin = Right(Dec2Bin, Len(Dec2Bin) - 1) Loop Until Not Left(Dec2Bin, 1) = "0" Or Len(Dec2Bin) = 1 End Function
Hvis du bruger VB7 er det meget nemt: brug Convert.ToString(mittal, base) hvor mittal er det tal der skal konverteres (f.eks. 12) og base er 2 for binær, 8 for oktal, 16 for hexadecimal. Når du skal konvertere strengen til separate variable kan du loope igennem strengen med mid() funktionen, men jeg ville foretrække at lave en array vha. split() funktionen.
Mit første svar var noget jeg lavede for meget lang tid siden, det kan selvfølgelig laves meget simplere (den tager kun de første 8 bit, men du kan nok se hvor det skal tilpasses) :
Dim i, val As Integer Dim bin(8) As Byte val = CInt(Text1.Text) i = 0
While (i < 8) If (val And 2 ^ i) Then bin(i) = 1 Else bin(i) = 0 i = i + 1 Wend
val = CInt(text1.text) skal selvf. erstattes af det tal / variabel du vil have konverteret.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.