战剑网络,网站建设,系统开发,程序设计

搜索Top
VB进制转换


搜索关键字:
 用途:将十进制转化为二进制
'
 输入:dec(十进制数)
'
 输入数据类型:long
'
 输出:dec_to_bin(二进制数)

'
 输出数据类型:string
'
 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)
public function dec_to_bin(dec as longas 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 stringas 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 stringas 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 stringas 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 stringas long
    
dim i as long
    
dim b as long
    
    
hex = ucase(hex)
    
for i = 1 to len(hex)
        
select case mid(hexlen(hex- i + 11)
            
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 longas 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 longas 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 stringas long
    
dim i as long
    
dim b as long
    
    
for i = 1 to len(oct)
        
select case mid(octlen(oct- i + 11)
            
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 stringas 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 stringas 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 stringas string
    
dim bin as string