VB进制转换
用途:将十进制转化为二进制
'输入:Dec(十进制数)
'输入数据类型:Long
'输出:DEC_to_BIN(二进制数)
'输出数据类型:String
'输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)
PublicFunctionDEC_to_BIN(DecAsLong)AsString
DEC_to_BIN=""
DoWhileDec>0
DEC_to_BIN=DecMod2&DEC_to_BIN
Dec=Dec2
Loop
EndFunction
'用途:将二进制转化为十进制
'输入:Bin(二进制数)
'输入数据类型:String
'输出:BIN_to_DEC(十进制数)
'输出数据类型:Long
'输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647
PublicFunctionBIN_to_DEC(ByValBinAsString)AsLong
DimiAsLong
Fori=1ToLen(Bin)
BIN_to_DEC=BIN_to_DEC*2+Val(Mid(Bin,i,1))
Nexti
EndFunction
'用途:将十六进制转化为二进制
'输入:Hex(十六进制数)
'输入数据类型:String
'输出:HEX_to_BIN(二进制数)
'输出数据类型:String
'输入的最大数为2147483647个字符
PublicFunctionHEX_to_BIN(ByValHexAsString)AsString
DimiAsLong
DimBAsString
Hex=UCase(Hex)
Fori=1ToLen(Hex)
SelectCaseMid(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"
EndSelect
Nexti
WhileLeft(B,1)="0"
B=Right(B,Len(B)-1)
Wend
HEX_to_BIN=B
EndFunction
'用途:将二进制转化为十六进制
'输入:Bin(二进制数)
'输入数据类型:String
'输出:BIN_to_HEX(十六进制数)
'输出数据类型:String
'输入的最大数为2147483647个字符
PublicFunctionBIN_to_HEX(ByValBinAsString)AsString
DimiAsLong
DimHAsString
IfLen(Bin)Mod4<>0Then
Bin=String(4-Len(Bin)Mod4,"0")&Bin
EndIf
Fori=1ToLen(Bin)Step4
SelectCaseMid(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"
EndSelect
Nexti
WhileLeft(H,1)="0"
H=Right(H,Len(H)-1)
Wend
BIN_to_HEX=H
EndFunction
'用途:将十六进制转化为十进制
'输入:Hex(十六进制数)
'输入数据类型:String
'输出:HEX_to_DEC(十进制数)
'输出数据类型:Long
'输入的最大数为7FFFFFFF,输出的最大数为2147483647
PublicFunctionHEX_to_DEC(ByValHexAsString)AsLong
DimiAsLong
DimBAsLong
Hex=UCase(Hex)
Fori=1ToLen(Hex)
SelectCaseMid(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
EndSelect
Nexti
HEX_to_DEC=B
EndFunction

'用途:将十进制转化为十六进制
'输入:Dec(十进制数)
'输入数据类型:Long
'输出:DEC_to_HEX(十六进制数)
'输出数据类型:String
'输入的最大数为2147483647,输出最大数为7FFFFFFF
PublicFunctionDEC_to_HEX(DecAsLong)AsString
DimaAsString
DEC_to_HEX=""
DoWhileDec>0
a=CStr(DecMod16)
SelectCasea
Case"10":a="A"
Case"11":a="B"
Case"12":a="C"
Case"13":a="D"
Case"14":a="E"
Case"15":a="F"
EndSelect
DEC_to_HEX=a&DEC_to_HEX
Dec=Dec16
Loop
EndFunction
'用途:将十进制转化为八进制
'输入:Dec(十进制数)
'输入数据类型:Long
'输出:DEC_to_OCT(八进制数)
'输出数据类型:String
'输入的最大数为2147483647,输出最大数为17777777777
PublicFunctionDEC_to_OCT(DecAsLong)AsString
DEC_to_OCT=""
DoWhileDec>0
DEC_to_OCT=DecMod8&DEC_to_OCT
Dec=Dec8
Loop
EndFunction
'用途:将八进制转化为十进制
'输入:Oct(八进制数)
'输入数据类型:String
'输出:OCT_to_DEC(十进制数)
'输出数据类型:Long
'输入的最大数为17777777777,输出的最大数为2147483647
PublicFunctionOCT_to_DEC(ByValOctAsString)AsLong
DimiAsLong
DimBAsLong
Fori=1ToLen(Oct)
SelectCaseMid(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
EndSelect
Nexti
OCT_to_DEC=B
EndFunction
'用途:将二进制转化为八进制
'输入:Bin(二进制数)
'输入数据类型:String
'输出:BIN_to_OCT(八进制数)
'输出数据类型:String
'输入的最大数为2147483647个字符
PublicFunctionBIN_to_OCT(ByValBinAsString)AsString
DimiAsLong
DimHAsString
IfLen(Bin)Mod3<>0Then
Bin=String(3-Len(Bin)Mod3,"0")&Bin
EndIf
Fori=1ToLen(Bin)Step3
SelectCaseMid(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"
EndSelect
Nexti
WhileLeft(H,1)="0"
H=Right(H,Len(H)-1)
Wend
BIN_to_OCT=H
EndFunction
'用途:将八进制转化为二进制
'输入:Oct(八进制数)
'输入数据类型:String
'输出:OCT_to_BIN(二进制数)
'输出数据类型:String
'输入的最大数为2147483647个字符
PublicFunctionOCT_to_BIN(ByValOctAsString)AsString
DimiAsLong
DimBAsString
Fori=1ToLen(Oct)
SelectCaseMid(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"
EndSelect
Nexti
WhileLeft(B,1)="0"
B=Right(B,Len(B)-1)
Wend
OCT_to_BIN=B
EndFunction
'用途:将八进制转化为十六进制
'输入:Oct(八进制数)
'输入数据类型:String
'输出:OCT_to_HEX(十六进制数)
'输出数据类型:String
'输入的最大数为2147483647个字符
PublicFunctionOCT_to_HEX(ByValOctAsString)AsString
DimBinAsString
Bin=OCT_to_BIN(Oct)
OCT_to_HEX=BIN_to_HEX(Bin)
EndFunction
'用途:将十六进制转化为八进制
'输入:Hex(十六进制数)
'输入数据类型:String
'输出:HEX_to_OCT(八进制数)
'输出数据类型:String
'输入的最大数为2147483647个字符
PublicFunctionHEX_to_OCT(ByValHexAsString)AsString
DimBinAsString
Hex=UCase(Hex)
Bin=HEX_to_BIN(Hex)
HEX_to_OCT=BIN_to_OCT(Bin)
EndFunction

VB自带函数:
十进制转八进制:Oct(num)
十六进制转八进制:oct("&H"&num)
十进制转十六进制:hex(num)
八进制转十六进制:hex("&O"&num)

