为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制.doc

2017-09-01 12页 doc 32KB 72阅读

用户头像

is_562397

暂无简介

举报
VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制.docVB二进制 十进制 八进制 十六进制互转的代码十进制转二进制.doc VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制: 十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 故二进制为100101110 二进制转十进制 从最后一位开始算,依次列为第...
VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制.doc
VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制.doc VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制: 十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 故二进制为100101110 二进制转十进制 从最后一位开始算,依次列为第0、1、2...位 第n位的数(0或1)乘以2的n次方 得到的结果相加 就是 例如:01101011.转十进制: 第0位:1乘2的0次方=1 1乘2的1次方=2 0乘2的2次方,0 1乘2的3次方,8 0乘2的4次方,0 1乘2的5次方,32 1乘2的6次方,64 0乘2的7次方,0 然后:1,2,0 ,8,0,32,64,0,107( 二进制01101011,十进制107( ' 用途:将十进制转化为二进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:DEC_to_BIN(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1) 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 ===================================================================== ====== ' 用途:将二进制转化为十进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:BIN_to_DEC(十进制数) ' 输出数据类型:Long ' 输入的最大数为1111111111111111111111111111111(31个1),输出最大数为 2147483647 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 ===================================================================== ====== ' 用途:将十六进制转化为二进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:HEX_to_BIN(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 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 ===================================================================== ====== ' 用途:将二进制转化为十六进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:BIN_to_HEX(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 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 ===================================================================== ====== ' 用途:将十六进制转化为十进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:HEX_to_DEC(十进制数) ' 输出数据类型:Long ' 输入的最大数为7FFFFFFF,输出的最大数为2147483647 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 ===================================================================== ====== ' 用途:将十进制转化为十六进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:DEC_to_HEX(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为7FFFFFFF 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 ===================================================================== ====== ' 用途:将十进制转化为八进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:DEC_to_OCT(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为17777777777 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 ===================================================================== ====== ' 用途:将八进制转化为十进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:OCT_to_DEC(十进制数) ' 输出数据类型:Long ' 输入的最大数为17777777777,输出的最大数为2147483647 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 ===================================================================== ====== ' 用途:将二进制转化为八进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:BIN_to_OCT(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 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 ===================================================================== ====== ' 用途:将八进制转化为二进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:OCT_to_BIN(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 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" 1) B = Right(B, Len(B) - Wend OCT_to_BIN = B End Function ===================================================================== ====== ' 用途:将八进制转化为十六进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:OCT_to_HEX(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 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 ===================================================================== ====== ' 用途:将十六进制转化为八进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:HEX_to_OCT(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 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 ===================================================================== ====== VB自带函数: 十进制转八进制:Oct(num) 十六进制转八进制:oct("&H" & num) 十进制转十六进制:hex(num) 八进制转十六进制:hex("&O" & num) 十六进制转换为十进制 Dim str As String str = Text2.Text Text10.Text = CLng("&H" & str)
/
本文档为【VB二进制 十进制 八进制 十六进制互转的代码十进制转二进制&#46;doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索