| 发表于:2007-05-24 14:06:437楼 得分:0 |
已经解决了,在网上找到了进制互换的代码,不管大家知不知道,贴出来分享一下: '------------------------------------------------- ' 用途:将十进制转化为二进制 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 ' 用途:将二进制转化为十进制 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 ' 用途:将十六进制转化为二进制 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 ' 用途:将二进制转化为十六进制 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 ' 用途:将十六进制转化为十进制 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 ' 用途:将十进制转化为十六进制 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 ' 用途:将十进制转化为八进制 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 ' 用途:将八进制转化为十进制 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 ' 用途:将二进制转化为八进制 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 ' 用途:将八进制转化为二进制 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 ' 用途:将八进制转化为十六进制 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 ' 用途:将十六进制转化为八进制 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 | | |
|