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

  • 相关阅读:
    【记录】【MySQL】填充字符串函数 LPAD(str,len,padstr)
    nvm安装node和npm,个人踩坑记录
    win10系统下cmd输入一下安装的软件命令提示拒绝访问解决办法
    bootstrap大图轮播手机端不能手指滑动解决办法
    JS中函数声明与函数表达式的异同
    javaScript实现归并排序
    js插入节点appendChild和insertBefore
    JS的事件冒泡和事件捕获
    js 停止事件冒泡 阻止浏览器的默认行为
    事件绑定的几种常见方式
  • 原文地址:https://www.cnblogs.com/secbook/p/2655365.html
Copyright © 2011-2022 走看看