﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-每天进步一点点-随笔分类---vb leaning--</title><link>http://www.blogjava.net/moonandsun/category/38626.html</link><description>Welcome ,My new friends!!!</description><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2009 05:38:09 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2009 05:38:09 GMT</pubDate><ttl>60</ttl><item><title>十进制，八进制，十六进制，二进制相互转换(vb) </title><link>http://www.blogjava.net/moonandsun/archive/2009/03/29/262704.html</link><dc:creator>moonandsun</dc:creator><author>moonandsun</author><pubDate>Sun, 29 Mar 2009 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/moonandsun/archive/2009/03/29/262704.html</guid><wfw:comment>http://www.blogjava.net/moonandsun/comments/262704.html</wfw:comment><comments>http://www.blogjava.net/moonandsun/archive/2009/03/29/262704.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/moonandsun/comments/commentRss/262704.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/moonandsun/services/trackbacks/262704.html</trackback:ping><description><![CDATA[<p class="tag"></p>
<div id="content">
<p><strong>十进制，八进制，十六进制，二进制相互转换</strong><br />
<br />
' 用途：将十进制转化为二进<br />
' 输入：Dec(十进制数)<br />
' 输入数据类型：Long<br />
' 输出：DEC_to_BIN(二进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)<br />
Public Function DEC_to_BIN(Dec As Long) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;DEC_to_BIN = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;Do While Dec &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC_to_BIN = Dec Mod 2 &amp; DEC_to_BIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dec = Dec \ 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;Loop<br />
End Function<br />
<br />
' 用途：将二进制转化为十进制<br />
' 输入：Bin(二进制数)<br />
' 输入数据类型：String<br />
' 输出：BIN_to_DEC(十进制数)<br />
' 输出数据类型：Long<br />
' 输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647<br />
Public Function BIN_to_DEC(ByVal Bin As String) As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Bin)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
End Function<br />
<br />
' 用途：将十六进制转化为二进制<br />
' 输入：Hex(十六进制数)<br />
' 输入数据类型：String<br />
' 输出：HEX_to_BIN(二进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647个字符<br />
Public Function HEX_to_BIN(ByVal Hex As String) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim B As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Hex = UCase(Hex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Hex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case Mid(Hex, i, 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0": B = B &amp; "0000"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1": B = B &amp; "0001"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "2": B = B &amp; "0010"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "3": B = B &amp; "0011"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "4": B = B &amp; "0100"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "5": B = B &amp; "0101"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "6": B = B &amp; "0110"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "7": B = B &amp; "0111"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "8": B = B &amp; "1000"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "9": B = B &amp; "1001"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "A": B = B &amp; "1010"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "B": B = B &amp; "1011"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "C": B = B &amp; "1100"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "D": B = B &amp; "1101"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "E": B = B &amp; "1110"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "F": B = B &amp; "1111"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
&nbsp;&nbsp;&nbsp;&nbsp;While Left(B, 1) = "0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B = Right(B, Len(B) - 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Wend<br />
&nbsp;&nbsp;&nbsp;&nbsp;HEX_to_BIN = B<br />
End Function<br />
<br />
' 用途：将二进制转化为十六进制<br />
' 输入：Bin(二进制数)<br />
' 输入数据类型：String<br />
' 输出：BIN_to_HEX(十六进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647个字符<br />
Public Function BIN_to_HEX(ByVal Bin As String) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim H As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;If Len(Bin) Mod 4 &lt;&gt; 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bin = String(4 - Len(Bin) Mod 4, "0") &amp; Bin<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Bin) Step 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case Mid(Bin, i, 4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0000": H = H &amp; "0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0001": H = H &amp; "1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0010": H = H &amp; "2"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0011": H = H &amp; "3"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0100": H = H &amp; "4"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0101": H = H &amp; "5"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0110": H = H &amp; "6"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0111": H = H &amp; "7"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1000": H = H &amp; "8"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1001": H = H &amp; "9"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1010": H = H &amp; "A"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1011": H = H &amp; "B"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1100": H = H &amp; "C"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1101": H = H &amp; "D"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1110": H = H &amp; "E"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1111": H = H &amp; "F"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
&nbsp;&nbsp;&nbsp;&nbsp;While Left(H, 1) = "0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;H = Right(H, Len(H) - 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Wend<br />
&nbsp;&nbsp;&nbsp;&nbsp;BIN_to_HEX = H<br />
End Function<br />
<br />
' 用途：将十六进制转化为十进制<br />
' 输入：Hex(十六进制数)<br />
' 输入数据类型：String<br />
' 输出：HEX_to_DEC(十进制数)<br />
' 输出数据类型：Long<br />
' 输入的最大数为7FFFFFFF,输出的最大数为2147483647<br />
Public Function HEX_to_DEC(ByVal Hex As String) As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim B As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Hex = UCase(Hex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Hex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case Mid(Hex, Len(Hex) - i + 1, 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0": B = B + 16 ^ (i - 1) * 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1": B = B + 16 ^ (i - 1) * 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "2": B = B + 16 ^ (i - 1) * 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "3": B = B + 16 ^ (i - 1) * 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "4": B = B + 16 ^ (i - 1) * 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "5": B = B + 16 ^ (i - 1) * 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "6": B = B + 16 ^ (i - 1) * 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "7": B = B + 16 ^ (i - 1) * 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "8": B = B + 16 ^ (i - 1) * 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "9": B = B + 16 ^ (i - 1) * 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "A": B = B + 16 ^ (i - 1) * 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "B": B = B + 16 ^ (i - 1) * 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "C": B = B + 16 ^ (i - 1) * 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "D": B = B + 16 ^ (i - 1) * 13<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "E": B = B + 16 ^ (i - 1) * 14<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "F": B = B + 16 ^ (i - 1) * 15<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
&nbsp;&nbsp;&nbsp;&nbsp;HEX_to_DEC = B<br />
End Function<br />
' 用途：将十进制转化为十六进制<br />
' 输入：Dec(十进制数)<br />
' 输入数据类型：Long<br />
' 输出：DEC_to_HEX(十六进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647,输出最大数为7FFFFFFF<br />
Public Function DEC_to_HEX(Dec As Long) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim a As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;DEC_to_HEX = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;Do While Dec &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a = CStr(Dec Mod 16)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case a<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "10": a = "A"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "11": a = "B"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "12": a = "C"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "13": a = "D"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "14": a = "E"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "15": a = "F"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC_to_HEX = a &amp; DEC_to_HEX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dec = Dec \ 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;Loop<br />
End Function<br />
<br />
' 用途：将十进制转化为八进制<br />
' 输入：Dec(十进制数)<br />
' 输入数据类型：Long<br />
' 输出：DEC_to_OCT(八进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647,输出最大数为17777777777<br />
Public Function DEC_to_OCT(Dec As Long) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;DEC_to_OCT = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;Do While Dec &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEC_to_OCT = Dec Mod 8 &amp; DEC_to_OCT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dec = Dec \ 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;Loop<br />
End Function<br />
<br />
' 用途：将八进制转化为十进制<br />
' 输入：Oct(八进制数)<br />
' 输入数据类型：String<br />
' 输出：OCT_to_DEC(十进制数)<br />
' 输出数据类型：Long<br />
' 输入的最大数为17777777777,输出的最大数为2147483647<br />
Public Function OCT_to_DEC(ByVal Oct As String) As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim B As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Oct)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case Mid(Oct, Len(Oct) - i + 1, 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0": B = B + 8 ^ (i - 1) * 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1": B = B + 8 ^ (i - 1) * 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "2": B = B + 8 ^ (i - 1) * 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "3": B = B + 8 ^ (i - 1) * 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "4": B = B + 8 ^ (i - 1) * 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "5": B = B + 8 ^ (i - 1) * 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "6": B = B + 8 ^ (i - 1) * 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "7": B = B + 8 ^ (i - 1) * 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
&nbsp;&nbsp;&nbsp;&nbsp;OCT_to_DEC = B<br />
End Function<br />
<br />
' 用途：将二进制转化为八进制<br />
' 输入：Bin(二进制数)<br />
' 输入数据类型：String<br />
' 输出：BIN_to_OCT(八进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647个字符<br />
Public Function BIN_to_OCT(ByVal Bin As String) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim H As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;If Len(Bin) Mod 3 &lt;&gt; 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bin = String(3 - Len(Bin) Mod 3, "0") &amp; Bin<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Bin) Step 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case Mid(Bin, i, 3)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "000": H = H &amp; "0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "001": H = H &amp; "1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "010": H = H &amp; "2"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "011": H = H &amp; "3"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "100": H = H &amp; "4"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "101": H = H &amp; "5"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "110": H = H &amp; "6"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "111": H = H &amp; "7"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
&nbsp;&nbsp;&nbsp;&nbsp;While Left(H, 1) = "0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;H = Right(H, Len(H) - 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Wend<br />
&nbsp;&nbsp;&nbsp;&nbsp;BIN_to_OCT = H<br />
End Function<br />
<br />
' 用途：将八进制转化为二进制<br />
' 输入：Oct(八进制数)<br />
' 输入数据类型：String<br />
' 输出：OCT_to_BIN(二进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647个字符<br />
Public Function OCT_to_BIN(ByVal Oct As String) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim B As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To Len(Oct)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Case Mid(Oct, i, 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "0": B = B &amp; "000"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "1": B = B &amp; "001"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "2": B = B &amp; "010"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "3": B = B &amp; "011"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "4": B = B &amp; "100"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "5": B = B &amp; "101"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "6": B = B &amp; "110"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case "7": B = B &amp; "111"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
&nbsp;&nbsp;&nbsp;&nbsp;While Left(B, 1) = "0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B = Right(B, Len(B) - 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Wend<br />
&nbsp;&nbsp;&nbsp;&nbsp;OCT_to_BIN = B<br />
End Function<br />
<br />
' 用途：将八进制转化为十六进制<br />
' 输入：Oct(八进制数)<br />
' 输入数据类型：String<br />
' 输出：OCT_to_HEX(十六进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647个字符<br />
Public Function OCT_to_HEX(ByVal Oct As String) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim Bin As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Bin = OCT_to_BIN(Oct)<br />
&nbsp;&nbsp;&nbsp;&nbsp;OCT_to_HEX = BIN_to_HEX(Bin)<br />
End Function<br />
<br />
' 用途：将十六进制转化为八进制<br />
' 输入：Hex(十六进制数)<br />
' 输入数据类型：String<br />
' 输出：HEX_to_OCT(八进制数)<br />
' 输出数据类型：String<br />
' 输入的最大数为2147483647个字符<br />
Public Function HEX_to_OCT(ByVal Hex As String) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim Bin As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Hex = UCase(Hex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Bin = HEX_to_BIN(Hex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;HEX_to_OCT = BIN_to_OCT(Bin)<br />
End Function<br />
<br />
<br />
VB自带函数：<br />
十进制转八进制：Oct(num)<br />
十六进制转八进制：oct("&amp;H" &amp; num)<br />
十进制转十六进制：hex(num)<br />
八进制转十六进制：hex("&amp;O" &amp; num)</p>
<p>十六进制转换为十进制<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;str&nbsp;As&nbsp;String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;Text2.Text<br />
&nbsp;&nbsp;&nbsp;&nbsp;Text10.Text&nbsp;=&nbsp;CLng("&amp;H"&nbsp;&amp;&nbsp;str)<br />
<br />
文章出处：http://blog.programfan.com/article.asp?id=11903<br />
感谢作者的无私奉献、、、、<br />
</p>
</div>
<img src ="http://www.blogjava.net/moonandsun/aggbug/262704.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/moonandsun/" target="_blank">moonandsun</a> 2009-03-29 10:57 <a href="http://www.blogjava.net/moonandsun/archive/2009/03/29/262704.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在VB中声明和使用API函数 </title><link>http://www.blogjava.net/moonandsun/archive/2009/03/28/262630.html</link><dc:creator>moonandsun</dc:creator><author>moonandsun</author><pubDate>Sat, 28 Mar 2009 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/moonandsun/archive/2009/03/28/262630.html</guid><wfw:comment>http://www.blogjava.net/moonandsun/comments/262630.html</wfw:comment><comments>http://www.blogjava.net/moonandsun/archive/2009/03/28/262630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/moonandsun/comments/commentRss/262630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/moonandsun/services/trackbacks/262630.html</trackback:ping><description><![CDATA[一、在VB中声明API函数有两种方法：如果我们只在某个窗体中使用API函数，我们可以在窗体代码的General部分声明它： <br />
<br />
<br />
　　声明的语法是： <br />
<br />
　　Private Declare Function ... <br />
<br />
　　Private Declare Sub..... <br />
<br />
　　这里必须采用Private声明，因为这个API函数只能被一个窗体内的程序所调用。 <br />
<br />
<br />
　　如果我们的程序有多个窗体构成，而且我们需要在多个窗体中使用同一个API函数，就需要在模块中声明了。 <br />
<br />
　　先添加一个模块（如图示）， <br />
<br />
　　然后采用如下语法声明： <br />
<br />
　　Public Declare Function.... <br />
<br />
　　Public Declare Sub.... <br />
<br />
　　Public声明的含义是把API函数作为一个公共函数或过程，在一个工程中的任何位置（包括所有的窗体和模块）都能直接调用它。 声明完毕我们就能在程序中使用此API函数了。 <br />
<br />
<br />
　　二、可采用以下几种方式使用API函数，以SetWindowPos函数为例： <br />
<br />
　　（1）忽略函数返回值的调用： <br />
<br />
　　　　SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3 <br />
<br />
　　注意此时函数的参数是不加括号的。 <br />
<br />
　　（2）Call方法调用： <br />
<br />
　　　　Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3) <br />
<br />
　　注意这里需要加上括号，但我们不取回函数的返回值。 <br />
<br />
　　（3）取得函数返回值的调用： <br />
<br />
　　　　MyLng = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3) <br />
<br />
　　此时需要加上括号，而且我们必须事先定义一个变量（变量的类型与函数返回值类型相同）来<a class="article" href="http://www.enet.com.cn/solution/" target="_blank">存储</a>API函数的返回值。 <br />
<br />
<br />
　　三、几个问题的说明： <br />
<br />
<br />
　　（1）声明中的Lib 和 Alias 是怎么回事 <br />
<br />
　　一般情况下WIN32API函数总是包含在WINDOWS系统自带的或是其它公司提供的动态连接库DLL中，而Declare语句中的Lib关键字就用来指定DLL（动态连接库）文件的路径，这样VB才能找到这个DLL文件，然后才能使用其中的API函数。如果我们只是列出DLL文件名而不指出其完整的路径的话，VB会自动到.EXE文件所在目录、当前工作目录、WINDOWS\SYSTEM目录、WINDOWS目录下搜寻这个DLL文件。所以如果所要使用DLL文件不在上述几个目录下的话，我们应该指明其完整路径。 <br />
<br />
　　Alias用于指定API函数的别名，如果我们调用的API函数要使用字符串（参数中包含String型）的话，Alias关键字是必须的。这是因为在ANSI和Unicode字符集中同一API函数的名称可能是不一样的，为了保证不出现声明错误，我们使用Alias关键字指出API函数的别名，一般来说在WIN9X平台下我们把API函数名后加一个大写A作为别名即可。 <br />
<br />
<br />
　　（2）常见的API参数类型的说明 <br />
<br />
　　API函数的参数中最常见的是长整Long型数据类型，例如API中的句柄、一些特定的常量、函数的返回值都是此类型 的值；另外几种常见的参数类型有：整型Integer、Byte型、String型等。 <br />
<br />
<br />
　　（3）声明中的ByVal是作什么用的 <br />
<br />
　　这跟VB的参数传递方式有关，在默认情况下VB是通过地址传递方式传递函数的参数、而有些API函数要求必须采用传值方式来传递函数参数（这两种参数传递方式是不同的，前者传递的是一个指针，而后者要求是参数真实的值）。这样就会发生错误，解决的办法是在API函数参数声明的前面加上ByVal关键字，这样VB就采用传值方式传递参数了。 <br />
<br />
<br />
　　（4）怎样得到完整的API函数声明 <br />
<br />
　　VB自带了API文本查看器API TEXT VIEWER，我们可以在其中找到API函数的完整声明，然后把它粘贴到程序中即可。<br />
<br />
原文地址：http://www.enet.com.cn/article/2004/0312/A20040312293927.shtml
<img src ="http://www.blogjava.net/moonandsun/aggbug/262630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/moonandsun/" target="_blank">moonandsun</a> 2009-03-28 16:46 <a href="http://www.blogjava.net/moonandsun/archive/2009/03/28/262630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>