Jeg er ikke lige opmærksom på en smart måde at gør det på.
Men det må være ret nemt med en primitiv måde da 16 hex cifre 0-F bliver til 16 fire cifrede binære tal 0000-1111, så man kan konvertere et hex tegn af gangen.
Det kan da ikke være så svært? :D Hehe ... Hvis jeg nu bare har en short værdi (i dette tilfælde 0-255) kan jeg så ikke få det retuneret til bit? Hvor 0 er 00000000 og 255 er 111111111?
Function ShortTOBit(ByVal Input As Short) As String Select Case Input Case 0 Return "00000000" Case 1 Return "00000001" Case ... Return "..." Case 255 Return "11111111" End Select End Function
Jeg har endelig fået lavet en selv :D: Public Function ShortToBit(ByVal Input As Short) As Integer Dim Bstring As String Dim x As Integer = 7 While x > -1 If Input > System.Math.Pow(2, x) - 1 Then Input -= CType(System.Math.Pow(2, x), Integer) Bstring += "1" Else Bstring += "0" End If x = x - 1 End While Return Convert.ToInt32(Bstring) End Function
Class MainClass Private Shared DIGITS As String = "0123456789ABCDEF" Private Shared Function FromAny(ByVal s As String, ByVal radix As Integer) As Integer Dim res As Integer = 0 Dim sa() As Char = s.ToCharArray Dim i As Integer For i = 0 To s.Length-1 res = res * radix + DIGITS.IndexOf(sa(i)) Next FromAny = res End Function Private Shared Function ToAny(ByVal i As Integer, ByVal radix As Integer) As String Dim res As String = "" Dim tmp As Integer = i While tmp > 0 res = DIGITS.ToCharArray()(tmp Mod radix) & res tmp = tmp \ radix End While ToAny = res End Function Public Shared Function FromDec(ByVal s As String) As Integer FromDec = FromAny(s, 10) End Function Public Shared Function ToDec(ByVal i As Integer) As String ToDec = ToAny(i, 10) End Function Public Shared Function FromHex(ByVal s As String) As Integer FromHex = FromAny(s, 16) End Function Public Shared Function ToHex(ByVal i As Integer) As String ToHex = ToAny(i, 16) End Function Public Shared Function FromBin(ByVal s As String) As Integer FromBin = FromAny(s, 2) End Function Public Shared Function ToBin(ByVal i As Integer) As String ToBin = ToAny(i, 2) End Function Public Shared Sub Main(ByVal args As String()) Console.WriteLine(ToBin(FromHex("FF"))) Console.WriteLine(ToBin(FromDec("11"))) End Sub End Class
Ja, den funktion kan lidt mere end min ;) Har dog ikke brug for alt dette ... Den jeg lavede selv virker perfekt! Men tak anyway ... !
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.