| 
注册时间2006-12-3
阅读权限30
最后登录1970-1-1UID26372 龙战于野 
 
 该用户从未签到 | 
 
| ' 输入:Dec(十进制数) ' 输入数据类型:Long
 ' 输出:DEC_to_BIN(二进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)
 Public Function DEC_to_BIN(Dec As Long) As String
 DEC_to_BIN = ""
 Do While Dec > 0
 DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
 Dec = Dec \ 2
 Loop
 End Function
 
 ' 用途:将二进制转化为十进制
 ' 输入:Bin(二进制数)
 ' 输入数据类型:String
 ' 输出:BIN_to_DEC(十进制数)
 ' 输出数据类型:Long
 ' 输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647
 Public Function BIN_to_DEC(ByVal Bin As String) As Long
 Dim i As Long
 For i = 1 To Len(Bin)
 BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
 Next i
 End Function
 
 ' 用途:将十六进制转化为二进制
 ' 输入:Hex(十六进制数)
 ' 输入数据类型:String
 ' 输出:HEX_to_BIN(二进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647个字符
 Public Function HEX_to_BIN(ByVal Hex As String) As String
 Dim i As Long
 Dim B As String
 
 Hex = UCase(Hex)
 For i = 1 To Len(Hex)
 Select Case Mid(Hex, i, 1)
 Case "0": B = B & "0000"
 Case "1": B = B & "0001"
 Case "2": B = B & "0010"
 Case "3": B = B & "0011"
 Case "4": B = B & "0100"
 Case "5": B = B & "0101"
 Case "6": B = B & "0110"
 Case "7": B = B & "0111"
 Case "8": B = B & "1000"
 Case "9": B = B & "1001"
 Case "A": B = B & "1010"
 Case "B": B = B & "1011"
 Case "C": B = B & "1100"
 Case "D": B = B & "1101"
 Case "E": B = B & "1110"
 Case "F": B = B & "1111"
 End Select
 Next i
 While Left(B, 1) = "0"
 B = Right(B, Len(B) - 1)
 Wend
 HEX_to_BIN = B
 End Function
 
 ' 用途:将二进制转化为十六进制
 ' 输入:Bin(二进制数)
 ' 输入数据类型:String
 ' 输出:BIN_to_HEX(十六进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647个字符
 Public Function BIN_to_HEX(ByVal Bin As String) As String
 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
 
 ' 用途:将十六进制转化为十进制
 ' 输入:Hex(十六进制数)
 ' 输入数据类型:String
 ' 输出:HEX_to_DEC(十进制数)
 ' 输出数据类型:Long
 ' 输入的最大数为7FFFFFFF,输出的最大数为2147483647
 Public Function HEX_to_DEC(ByVal Hex As String) As Long
 Dim i As Long
 Dim B As Long
 
 Hex = UCase(Hex)
 For i = 1 To Len(Hex)
 Select Case Mid(Hex, Len(Hex) - i + 1, 1)
 Case "0": B = B + 16 ^ (i - 1) * 0
 Case "1": B = B + 16 ^ (i - 1) * 1
 Case "2": B = B + 16 ^ (i - 1) * 2
 Case "3": B = B + 16 ^ (i - 1) * 3
 Case "4": B = B + 16 ^ (i - 1) * 4
 Case "5": B = B + 16 ^ (i - 1) * 5
 Case "6": B = B + 16 ^ (i - 1) * 6
 Case "7": B = B + 16 ^ (i - 1) * 7
 Case "8": B = B + 16 ^ (i - 1) * 8
 Case "9": B = B + 16 ^ (i - 1) * 9
 Case "A": B = B + 16 ^ (i - 1) * 10
 Case "B": B = B + 16 ^ (i - 1) * 11
 Case "C": B = B + 16 ^ (i - 1) * 12
 Case "D": B = B + 16 ^ (i - 1) * 13
 Case "E": B = B + 16 ^ (i - 1) * 14
 Case "F": B = B + 16 ^ (i - 1) * 15
 End Select
 Next i
 HEX_to_DEC = B
 End Function
 ' 用途:将十进制转化为十六进制
 ' 输入:Dec(十进制数)
 ' 输入数据类型:Long
 ' 输出:DEC_to_HEX(十六进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647,输出最大数为7FFFFFFF
 Public Function DEC_to_HEX(Dec As Long) As String
 Dim a As String
 DEC_to_HEX = ""
 Do While Dec > 0
 a = CStr(Dec Mod 16)
 Select Case a
 Case "10": a = "A"
 Case "11": a = "B"
 Case "12": a = "C"
 Case "13": a = "D"
 Case "14": a = "E"
 Case "15": a = "F"
 End Select
 DEC_to_HEX = a & DEC_to_HEX
 Dec = Dec \ 16
 Loop
 End Function
 
 ' 用途:将十进制转化为八进制
 ' 输入:Dec(十进制数)
 ' 输入数据类型:Long
 ' 输出:DEC_to_OCT(八进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647,输出最大数为17777777777
 Public Function DEC_to_OCT(Dec As Long) As String
 DEC_to_OCT = ""
 Do While Dec > 0
 DEC_to_OCT = Dec Mod 8 & DEC_to_OCT
 Dec = Dec \ 8
 Loop
 End Function
 
 ' 用途:将八进制转化为十进制
 ' 输入:Oct(八进制数)
 ' 输入数据类型:String
 ' 输出:OCT_to_DEC(十进制数)
 ' 输出数据类型:Long
 ' 输入的最大数为17777777777,输出的最大数为2147483647
 Public Function OCT_to_DEC(ByVal Oct As String) As Long
 Dim i As Long
 Dim B As Long
 
 For i = 1 To Len(Oct)
 Select Case Mid(Oct, Len(Oct) - i + 1, 1)
 Case "0": B = B + 8 ^ (i - 1) * 0
 Case "1": B = B + 8 ^ (i - 1) * 1
 Case "2": B = B + 8 ^ (i - 1) * 2
 Case "3": B = B + 8 ^ (i - 1) * 3
 Case "4": B = B + 8 ^ (i - 1) * 4
 Case "5": B = B + 8 ^ (i - 1) * 5
 Case "6": B = B + 8 ^ (i - 1) * 6
 Case "7": B = B + 8 ^ (i - 1) * 7
 End Select
 Next i
 OCT_to_DEC = B
 End Function
 
 ' 用途:将二进制转化为八进制
 ' 输入:Bin(二进制数)
 ' 输入数据类型:String
 ' 输出:BIN_to_OCT(八进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647个字符
 Public Function BIN_to_OCT(ByVal Bin As String) As String
 Dim i As Long
 Dim H As String
 If Len(Bin) Mod 3 <> 0 Then
 Bin = String(3 - Len(Bin) Mod 3, "0") & Bin
 End If
 
 For i = 1 To Len(Bin) Step 3
 Select Case Mid(Bin, i, 3)
 Case "000": H = H & "0"
 Case "001": H = H & "1"
 Case "010": H = H & "2"
 Case "011": H = H & "3"
 Case "100": H = H & "4"
 Case "101": H = H & "5"
 Case "110": H = H & "6"
 Case "111": H = H & "7"
 End Select
 Next i
 While Left(H, 1) = "0"
 H = Right(H, Len(H) - 1)
 Wend
 BIN_to_OCT = H
 End Function
 
 ' 用途:将八进制转化为二进制
 ' 输入:Oct(八进制数)
 ' 输入数据类型:String
 ' 输出:OCT_to_BIN(二进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647个字符
 Public Function OCT_to_BIN(ByVal Oct As String) As String
 Dim i As Long
 Dim B As String
 
 For i = 1 To Len(Oct)
 Select Case Mid(Oct, i, 1)
 Case "0": B = B & "000"
 Case "1": B = B & "001"
 Case "2": B = B & "010"
 Case "3": B = B & "011"
 Case "4": B = B & "100"
 Case "5": B = B & "101"
 Case "6": B = B & "110"
 Case "7": B = B & "111"
 End Select
 Next i
 While Left(B, 1) = "0"
 B = Right(B, Len(B) - 1)
 Wend
 OCT_to_BIN = B
 End Function
 
 ' 用途:将八进制转化为十六进制
 ' 输入:Oct(八进制数)
 ' 输入数据类型:String
 ' 输出:OCT_to_HEX(十六进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647个字符
 Public Function OCT_to_HEX(ByVal Oct As String) As String
 Dim Bin As String
 Bin = OCT_to_BIN(Oct)
 OCT_to_HEX = BIN_to_HEX(Bin)
 End Function
 
 ' 用途:将十六进制转化为八进制
 ' 输入:Hex(十六进制数)
 ' 输入数据类型:String
 ' 输出:HEX_to_OCT(八进制数)
 ' 输出数据类型:String
 ' 输入的最大数为2147483647个字符
 Public Function HEX_to_OCT(ByVal Hex As String) As String
 Dim Bin As String
 Hex = UCase(Hex)
 Bin = HEX_to_BIN(Hex)
 HEX_to_OCT = BIN_to_OCT(Bin)
 End Function
 
 
 VB自带函数:
 十进制转八进制:Oct(num)
 十六进制转八进制:oct("&H" & num)
 十进制转十六进制:hex(num)
 八进制转十六进制:hex("&O" & num)
 
 十六进制转换为十进制
 Dim str As String
 str = Text2.Text
 Text10.Text = CLng("&H" & str) &H" & str)
 | 
 |