【MATLAB】數之間的轉換

使用除餘法把十進制轉換成二進制
    Public Function DecToBin(ByVal InputString As String) As String
        Dim MyResult As String
        Dim MyMod As Integer
        Try
            Dim MyData As Integer = CInt(InputString)
            Do While MyData
                MyMod = MyData Mod 2
                MyData = MyData \ 2
                MyResult = Trim(CStr(MyMod)) & MyResult
            Loop
        Catch ex As Exception
            MsgBox("轉換數據出現錯誤,最大可能是數據輸入不符合規範")
        End Try
        Return MyResult
    End Function
    '使用冪乘法將二進制轉換成十進制
    Public Function BinToDec(ByVal InputString As String) As String
        Dim MyLength, i, MyResult As Long
        MyLength = InputString.Length
        Try
            For i = 0 To MyLength - 1
                MyResult = MyResult + Val(Mid(InputString, i + 1, 1)) * (2 ^ (MyLength - i - 1))
            Next
        Catch ex As Exception
            MsgBox("轉換數據出現錯誤,最大可能是數據輸入不符合規範")
        End Try
        Return CStr(MyResult)
    End Function
    '使用標準數字格式字符串進行十進制轉換成十六進制
    Public Function DecToHex(ByVal InputString As String) As String
        Try
            Dim MyData As Long = CInt(InputString)
            Dim MyResult As String = MyData.ToString("X")
            Return MyResult
        Catch ex As Exception
            MsgBox("轉換數據出現錯誤,最大可能是數據輸入不符合規範")
        End Try
    End Function
    '使用冪乘法將十六進制轉換成十進制
    Public Function HexToDec(ByVal InputString As String) As String
        Dim MyChar As String
        Dim MyLength, i, MyResult As Long
        Try
            MyLength = InputString.Length
            For i = 0 To MyLength - 1
                MyChar = Mid(InputString, i + 1, 1)
                Select Case MyChar
                    Case 0 : MyChar = 0
                    Case 1 : MyChar = 1
                    Case 2 : MyChar = 2
                    Case 3 : MyChar = 3
                    Case 4 : MyChar = 4
                    Case 5 : MyChar = 5
                    Case 6 : MyChar = 6
                    Case 7 : MyChar = 7
                    Case 8 : MyChar = 8
                    Case 9 : MyChar = 9
                    Case "A" : MyChar = 10
                    Case "B" : MyChar = 11
                    Case "C" : MyChar = 12
                    Case "D" : MyChar = 13
                    Case "E" : MyChar = 14
                    Case "F" : MyChar = 15
                End Select
                '從字符串中獲取十進制的真實值
                MyResult += Val(MyChar) * (16 ^ (MyLength - i - 1))
            Next
        Catch ex As Exception
            MsgBox("轉換數據出現錯誤,最大可能是數據輸入不符合規範")
        End Try
        Return CStr(MyResult)
    End Function
    '使用除餘法把十進制轉換成其他進制
    Public Function DecToOther(ByVal InputString As String, ByVal Other As String) As String
        Dim MyResult As String
        Dim MyMod As Integer
        Dim n As Integer = CInt(Other)
        Try
            Dim MyData As Integer = CInt(InputString)
            Do While MyData
                MyMod = MyData Mod n
                MyData = MyData \ n
                MyResult = Trim(CStr(MyMod)) & MyResult
            Loop
        Catch ex As Exception
            MsgBox("轉換數據出現錯誤,最大可能是數據輸入不符合規範")
        End Try
        Return MyResult
    End Function
    '使用冪乘法將其他進制轉換成十進制
    Public Function OtherToDec(ByVal InputString As String, ByVal Other As String) As String
        Dim MyResult, i As Integer
        Try
            Dim MyLength As Integer = InputString.Length
            Dim n As Integer = CInt(Other)
            For i = 0 To MyLength - 1
                MyResult += Val(Mid(InputString, i + 1, 1)) * (n ^ (MyLength - i - 1))
            Next
        Catch ex As Exception
            MsgBox("轉換數據出現錯誤,最大可能是數據輸入不符合規範")
        End Try
        Return CStr(MyResult)
    End Function

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章