3种进制转换(网上收集的)

本文提供了VBScript中实现十六进制与二进制相互转换的方法,包括直接使用字符串操作进行转换的过程。介绍了如何将十六进制数转换为二进制数,并反向进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Function Hex2Bin(HexValue As String) As String   '16进制转2进制
Const BinTbl = "0000000100100011010001010110011110001001101010111100110111101111"
Dim X As Integer
Dim Work1 As String
Work1 = ""
For X = 1 To Len(HexValue)
Work1 = Work1 + Mid(BinTbl, Val("&h" + Mid(HexValue, X, 1)) * 4 + 1, 4)
Next
Hex2Bin = Work1
End Function
Public Function BIN_to_HEX(ByVal Bin As String) As String '2进制转16进制
        Dim I     As Long
        Dim H     As String
        If Len(Bin) Mod 4 <> 0 Then
                Bin = String(4 - Len(Bin) Mod 4, "0 ") & Bin
        End If
       
        For I = 1 To Len(Bin) Step 4
                Select Case Mid(Bin, I, 4)
                        Case "0000 ":     H = H & "0 "
                        Case "0001 ":     H = H & "1 "
                        Case "0010 ":     H = H & "2 "
                        Case "0011 ":     H = H & "3 "
                        Case "0100 ":     H = H & "4 "
                        Case "0101 ":     H = H & "5 "
                        Case "0110 ":     H = H & "6 "
                        Case "0111 ":     H = H & "7 "
                        Case "1000 ":     H = H & "8 "
                        Case "1001 ":     H = H & "9 "
                        Case "1010 ":     H = H & "A "
                        Case "1011 ":     H = H & "B "
                        Case "1100 ":     H = H & "C "
                        Case "1101 ":     H = H & "D "
                        Case "1110 ":     H = H & "E "
                        Case "1111 ":     H = H & "F "
                End Select
        Next I
        While Left(H, 1) = "0 "
                H = Right(H, Len(H) - 1)
        Wend
        BIN_to_HEX = H
End Function

Public Function Hex2Dec(InputData As String) As Double '16进制转10进制
Dim I As Integer
Dim DecOut As Double
Dim Lenhex As Integer
Dim HexStep As Double
DecOut = 0
InputData = UCase(InputData)
Lenhex = Len(InputData)
For I = 1 To Lenhex
If IsNumeric(Mid(InputData, I, 1)) Then
  GoTo NumOk
ElseIf Mid(InputData, I, 1) = "A" Then
  GoTo NumOk
ElseIf Mid(InputData, I, 1) = "B" Then
  GoTo NumOk
ElseIf Mid(InputData, I, 1) = "C" Then
  GoTo NumOk
ElseIf Mid(InputData, I, 1) = "D" Then
  GoTo NumOk
ElseIf Mid(InputData, I, 1) = "E" Then
  GoTo NumOk
ElseIf Mid(InputData, I, 1) = "F" Then
  GoTo NumOk
Else
  Exit Function
End If
NumOk:
Next I
HexStep = 0
For I = Lenhex To 1 Step -1
HexStep = HexStep * 16
If HexStep = 0 Then
  HexStep = 1
End If
If Mid(InputData, I, 1) = "0" Then
   DecOut = DecOut + (0 * HexStep)
ElseIf Mid(InputData, I, 1) = "1" Then
   DecOut = DecOut + (1 * HexStep)
ElseIf Mid(InputData, I, 1) = "2" Then
   DecOut = DecOut + (2 * HexStep)
ElseIf Mid(InputData, I, 1) = "3" Then
   DecOut = DecOut + (3 * HexStep)
ElseIf Mid(InputData, I, 1) = "4" Then
   DecOut = DecOut + (4 * HexStep)
ElseIf Mid(InputData, I, 1) = "5" Then
   DecOut = DecOut + (5 * HexStep)
ElseIf Mid(InputData, I, 1) = "6" Then
   DecOut = DecOut + (6 * HexStep)
ElseIf Mid(InputData, I, 1) = "7" Then
   DecOut = DecOut + (7 * HexStep)
ElseIf Mid(InputData, I, 1) = "8" Then
   DecOut = DecOut + (8 * HexStep)
ElseIf Mid(InputData, I, 1) = "9" Then
   DecOut = DecOut + (9 * HexStep)
ElseIf Mid(InputData, I, 1) = "A" Then
   DecOut = DecOut + (10 * HexStep)
ElseIf Mid(InputData, I, 1) = "B" Then
   DecOut = DecOut + (11 * HexStep)
ElseIf Mid(InputData, I, 1) = "C" Then
   DecOut = DecOut + (12 * HexStep)
ElseIf Mid(InputData, I, 1) = "D" Then
   DecOut = DecOut + (13 * HexStep)
ElseIf Mid(InputData, I, 1) = "E" Then
   DecOut = DecOut + (14 * HexStep)
ElseIf Mid(InputData, I, 1) = "F" Then
   DecOut = DecOut + (15 * HexStep)
Else
End If
Next I
Hex2Dec = DecOut
eds:
End Function
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值