【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

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