zoukankan      html  css  js  c++  java
  • 进制数换算

    '十进制数转换成十六进制数
        Public Shared Function DecToHex(ByVal value As Integer) As String
            Return BinToHex(DecToBin(value))
        End Function

        '二进制数转换成十进制数
        Public Shared Function BinToDec(ByVal value As String) As Integer
            Dim i As Integer
            Dim returnValue As Integer = 0
            For i = value.Length - 1 To 0 Step -1
                returnValue += Val(value.Chars(value.Length - 1 - i)) * (2 ^ i)
            Next

            Return returnValue
        End Function

        '任意二进制数转换成十六进制数
        Public Shared Function BinToHex(ByVal value As String) As String
            If value.Length Mod 4 <> 0 Then
                value = value.PadLeft(4 * (value.Length / 4 + 1), "0"c)
            End If

            Dim i As Integer
            Dim returnString As String = ""
            Dim tempString As String
            For i = 0 To value.Length / 4 - 1
                tempString = value.Chars(4 * i) + value.Chars(4 * i + 1) _
                         + value.Chars(4 * i + 2) + value.Chars(4 * i + 3)

                returnString += GetHexChar(tempString)
            Next

            Return returnString
        End Function

        '特殊情况:4位二进制数转换成十六进制数
        Public Shared Function GetHexChar(ByVal value As String) As String
            Dim tempValue As Integer
            tempValue = BinToDec(value)

            If tempValue < 10 Then
                Return CStr(tempValue)
            Else
                Select Case tempValue - 10
                    Case 0
                        Return "A"
                    Case 1
                        Return "B"
                    Case 2
                        Return "C"
                    Case 3
                        Return "D"
                    Case 4
                        Return "E"
                    Case 5
                        Return "F"
                End Select
            End If
        End Function

        '仅限非负整数
        '十进制数转换成二进制数
        Public Shared Function DecToBin(ByVal value As Integer) As String
            If value = 0 Then Return "0"

            Dim tempValue As Integer = value
            Dim tempString As String = ""

            Dim modValue As Integer
            Do
                tempString += CStr(tempValue Mod 2)
                tempValue = tempValue / 2
            Loop While (tempValue <> 0)

            Dim i As Integer
            Dim returnChars As Char() = tempString.ToCharArray()
            Dim returnString As String = ""
            For i = tempString.Length - 1 To 0 Step -1
                returnString += returnChars(i)
            Next

            Return returnString
        End Function

        '十六进制数转换成十进制数
        Public Shared Function HexToDec(ByVal value As String) As Integer
            Dim i As Integer
            Dim returnValue As Integer = 0
            For i = value.Length - 1 To 0 Step -1
                Dim num As Integer = 0
                Select Case value.Chars(value.Length - 1 - i)
                    Case "0"c To "9"c
                        num = Val(value.Chars(i))
                    Case "A"c
                        num = 10
                    Case "B"c
                        num = 11
                    Case "C"c
                        num = 12
                    Case "D"c
                        num = 13
                    Case "E"c
                        num = 14
                    Case "F"c
                        num = 15
                End Select

                returnValue += num * (16 ^ i)
            Next

            Return returnValue
        End Function

  • 相关阅读:
    [原]百度公交离线数据格式分析——4.小结
    [原]百度公交离线数据格式分析——3.加载城市列表
    [原]百度公交离线数据格式分析——2.从界面点击下载的流程
    [原]百度公交离线数据格式分析——1.准备工作
    网页版迅雷离线下载过程分析
    OPKG命令执行过程分析
    Python 随笔两则
    心理学在前端的应用--《设计师要懂心理学》读书笔记之人如何记忆和思考
    心理学在前端的应用---(设计师要懂心理学)读书笔记之人如何观察和阅读
    React阻止事件冒泡的正确打开方式
  • 原文地址:https://www.cnblogs.com/secbook/p/2655365.html
Copyright © 2011-2022 走看看