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)