-
VB十进制数转换为二进制、八进制、十六进制。
2009-08-16 17:37:04VB的十进制数转换为二进制、八进制、十六进制。 来源网络 -
vb各进制转换代码.doc
2020-04-23 23:48:21VB 各种进制相互转换大全 ' 用途将十进制转化为二进制 ' 输入Dec(十进制数) ' 输入数据类型Long ' 输出DEC_to_BIN(二进制数) ' 输出数据类型String ' 输入的最大数为2147483647,输出最大数为...Public Function DEC_to_... -
VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
2013-01-30 07:19:43模块包含了下面的各种转换: 二进制转十进制二进制转化为八进制二进制转化为十六进制 八进制转化为十进制八进制转化为二进制八进制转化为十六进制 十进制转二进制十进制转化为八进制十进制转化为十六进制 十六进制...模块包含了下面的各种转换:
二进制转十进制
二进制转化为八进制
二进制转化为十六进制八进制转化为十进制
八进制转化为二进制
八进制转化为十六进制十进制转二进制
十进制转化为八进制
十进制转化为十六进制十六进制转化为二进制
十六进制转化为八进制
十六进制转化为十进制16进制转ASC
10进制长整数转4位16进制字符串
10进制长整数转2位16进制字符串
ASCII字符串转16进制字符串
反16进制数转10进制数,共8位
反16进制数转10进制数,共6位
反16进制数转10进制数,共4位
10进制数转反16进制数,共8位
0进制数转反16进制数,共6位
10进制数转反16进制数,共4位
记录集转二进制流
ASCII码转二进制流
二进制流转ASCII码代码如下:
'二进制转十进制
Public Function B2D(vBStr As String) As Long
Dim vLen As Integer '串长
Dim vDec As Long '结果
Dim vG As Long '权值
Dim vI As Long '位数
Dim vTmp As String '临时串
Dim vN As Long '中间值vLen = Len(vBStr)
vG = 1 '初始权值
vDec = 0 '结果初值
B2D = vDec '返回初值For vI = vLen To 1 Step -1
vTmp = Mid(vBStr, vI, 1) '取出当前位
vN = Val(vTmp)If vN < 2 Then '判断是不是合法二进制串,貌似不严谨,E文和符号会被判0而合法
vDec = vDec + vG * vN '得到中间结果
vG = vG + vG
Else
vDec = 0
'msgbox "不是有效的二进制数",vbokonly
Exit Function
End If
Next vIB2D = vDec
End Function'十进制转二进制
Public Function D2B(Dec As Long) As String
D2B = ""
Do While Dec > 0
D2B = Dec Mod 2 & D2B
Dec = Dec \ 2
Loop
End Function' 用途:将十六进制转化为二进制
' 输入:Hex(十六进制数)
' 输入数据类型:String
' 输出:H2B(二进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function H2B(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
H2B = b
End Function' 用途:将二进制转化为十六进制
' 输入:Bin(二进制数)
' 输入数据类型:String
' 输出:B2H(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function B2H(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
B2H = H
End Function' 用途:将十六进制转化为十进制
' 输入:Hex(十六进制数)
' 输入数据类型:String
' 输出:H2D(十进制数)
' 输出数据类型:Long
' 输入的最大数为7FFFFFFF,输出的最大数为2147483647
Public Function H2D(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
H2D = b
End Function' 用途:将十进制转化为十六进制
' 输入:Dec(十进制数)
' 输入数据类型:Long
' 输出:D2H(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647,输出最大数为7FFFFFFF
Public Function D2H(Dec As Long) As String
Dim a As String
D2H = ""
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
D2H = a & D2H
Dec = Dec \ 16
Loop
End Function' 用途:将十进制转化为八进制
' 输入:Dec(十进制数)
' 输入数据类型:Long
' 输出:D2O(八进制数)
' 输出数据类型:String
' 输入的最大数为2147483647,输出最大数为17777777777
Public Function D2O(Dec As Long) As String
D2O = ""
Do While Dec > 0
D2O = Dec Mod 8 & D2O
Dec = Dec \ 8
Loop
End Function' 用途:将八进制转化为十进制
' 输入:Oct(八进制数)
' 输入数据类型:String
' 输出:O2D(十进制数)
' 输出数据类型:Long
' 输入的最大数为17777777777,输出的最大数为2147483647
Public Function O2D(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
O2D = b
End Function' 用途:将二进制转化为八进制
' 输入:Bin(二进制数)
' 输入数据类型:String
' 输出:B2O(八进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function B2O(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
B2O = H
End Function' 用途:将八进制转化为二进制
' 输入:Oct(八进制数)
' 输入数据类型:String
' 输出:O2B(二进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function O2B(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
O2B = b
End Function' 用途:将八进制转化为十六进制
' 输入:Oct(八进制数)
' 输入数据类型:String
' 输出:O2H(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function O2H(ByVal Oct As String) As String
Dim Bin As String
Bin = O2B(Oct)
O2H = B2H(Bin)
End Function' 用途:将十六进制转化为八进制
' 输入:Hex(十六进制数)
' 输入数据类型:String
' 输出:H2O(八进制数)
' 输出数据类型:String
' 输入的最大数为2147483647个字符
Public Function H2O(ByVal Hex As String) As String
Dim Bin As String
Hex = UCase(Hex)
Bin = H2B(Hex)
H2O = B2O(Bin)
End Function'====================================================
'16进制转ASC
Function H2A(InputData As String) As String
Dim mydata
mydata = Chr(Val("&H" & InputData))
H2A = mydata
Exit Function
End Function'10进制长整数转4位16进制字符串
Function S2H(Num As Long) As String
Dim mynum As String
mynum = Hex(Num)
If Len(mynum) = 1 Then mynum = "000" + mynum
If Len(mynum) = 2 Then mynum = "00" + mynum
If Len(mynum) = 3 Then mynum = "0" + Left(mynum, 2) + Right(mynum, 1)
If Len(mynum) = 4 Then mynum = Right(mynum, 2) + Left(mynum, 2)
S2H = mynum
End Function'10进制长整数转2位16进制字符串
Function S2H2(Num As Long) As String
Dim mynum As String
mynum = Hex(Num)
If Len(mynum) = 1 Then mynum = "0" + mynum
S2H2 = mynum
End Function'ASCII字符串转16进制字符串
Public Function A2H(str As String) As String
Dim strlen As Integer
Dim i As Integer
Dim mystr As String
mystr = ""
strlen = Len(str)
For i = 1 To strlen Step 1
mystr = mystr + Hex$(Asc(Mid(str, i, 1)))
Next i
A2H = mystr
End Function'=====================================================
'进制反转
'====================================================='反16进制数转10进制数,共8位
Function FHexToInt(ByVal str As String) As String
Dim text1 As String
text1 = str
Dim text2 As String
text2 = Mid(text1, 7, 2)
Dim text3 As String
text3 = Mid(text1, 5, 2)
Dim text4 As String
text4 = Mid(text1, 3, 2)
Dim text5 As String
text5 = Mid(text1, 1, 2)
FHexToInt = Val("&H" & text2 & text3 & text4 & text5)
Exit Function
End Function
'反16进制数转10进制数,共6位
Function FHexToInt6(ByVal str As String) As String
Dim text1 As String
text1 = str
Dim text2 As String
text2 = Mid(text1, 5, 2)
Dim text4 As String
text3 = Mid(text1, 3, 2)
Dim text5 As String
text4 = Mid(text1, 1, 2)
FHexToInt6 = Val("&H" & text2 & text3 & text4)
Exit Function
End Function'反16进制数转10进制数,共4位
Function FHexToInt4(ByVal str As String) As String
Dim text1 As String
text1 = str
Dim text2 As String
text2 = Mid(text1, 3, 2)
Dim text4 As String
text3 = Mid(text1, 1, 2)
FHexToInt4 = Val("&H" & text2 & text3)
Exit Function
End Function'10进制数转反16进制数,共8位
Function IntToFHex(ByVal nums As Long) As String
Dim text1 As String
'text1 = Convert.ToString(nums, &H10)
text1 = O2H(nums)
If (Len(text1) = 1) Then
text1 = ("0000000" & text1)
End If
If (Len(text1) = 2) Then
text1 = ("000000" & text1)
End If
If (Len(text1) = 3) Then
text1 = ("00000" & text1)
End If
If (Len(text1) = 4) Then
text1 = ("0000" & text1)
End If
If (Len(text1) = 5) Then
text1 = ("000" & text1)
End If
If (Len(text1) = 6) Then
text1 = ("00" & text1)
End If
If (Len(text1) = 7) Then
text1 = ("0" & text1)
End If
Dim text2 As String
text2 = Mid(text1, 7, 2)
Dim text3 As String
text3 = Mid(text1, 5, 2)
Dim text4 As String
text4 = Mid(text1, 3, 2)
Dim text5 As String
text5 = Mid(text1, 1, 2)
IntToFHex = text2 & text3 & text4 & text5
Exit Function
End Function
'10进制数转反16进制数,共6位
Function IntToFHex6(ByVal nums As Long) As String
Dim text1 As String
text1 = O2H(nums)
If (Len(text1) = 1) Then
text1 = ("00000" & text1)
End If
If (Len(text1) = 2) Then
text1 = ("0000" & text1)
End If
If (Len(text1) = 3) Then
text1 = ("000" & text1)
End If
If (Len(text1) = 4) Then
text1 = ("00" & text1)
End If
If (Len(text1) = 5) Then
text1 = ("0" & text1)
End If
Dim text2 As String
text2 = Mid(text1, 5, 2)
Dim text3 As String
text3 = Mid(text1, 3, 2)
Dim text4 As String
text4 = Mid(text1, 1, 2)
IntToFHex6 = text2 & text3 & text4
Exit Function
End Function'10进制数转反16进制数,共4位
Function IntToFHex4(ByVal nums As Long) As String
Dim text1 As String
text1 = O2H(nums)
If (Len(text1) = 1) Then
text1 = ("000" & text1)
End If
If (Len(text1) = 2) Then
text1 = ("00" & text1)
End If
If (Len(text1) = 3) Then
text1 = ("0" & text1)
End If
Dim text2 As String
text2 = Mid(text1, 3, 2)
Dim text3 As String
text3 = Mid(text1, 1, 2)
IntToFHex4 = text2 & text3
Exit Function
End Function'==========================================
Public Function B2S(ByVal str As Byte)
strto = ""
For i = 1 To LenB(str)
If AscB(MidB(str, i, 1)) > 127 Then
strto = strto & Chr(AscB(MidB(str, i, 1)) * 256 + AscB(MidB(str, i + 1, 1)))
i = i + 1
Else
strto = strto & Chr(AscB(MidB(str, i, 1)))
End If
Next
B2S = strto
End FunctionPublic Function V2H(ByVal sHex As String, Optional bUnicode As Boolean)
Dim sByte As Variant
Dim byChar() As Byte
Dim i As Long
sHex = Replace(sHex, vbCrLf, "")
sByte = Split(sHex, " ")
ReDim byChar(0 To UBound(sByte)) As Byte
For i = 0 To UBound(sByte)
byChar(i) = Val("&h" & sByte(i))
Next
If bUnicode Then
V2H = byChar
Else
V2H = StrConv(byChar, vbUnicode)
End If
End Function'记录集转二进制流
Public Function R2B(rs As Recordset) As Variant '记录集转换为二进制数据
Dim objStream As Stream
Set objStream = New Stream
objStream.Open
objStream.Type = adTypeBinary
rs.Save objStream, adPersistADTG
objStream.Position = 0
R2B = objStream.Read()
Set objStream = Nothing
End Function'ASCII码转二进制流
Public Function A2B(str As String) As Variant
Dim a() As Byte, s As String
s = str
a = StrConv(s, vbFromUnicode) '字符串转换为byte型 'a 是byte数组,你可以在程序中调用 ,但不能在textbox中显示。
A2B = a
End Function'二进制流转ASCII码
Public Function B2A(vData As Variant) As String
Dim s As String
s = StrConv(vData, vbUnicode) 'byte型转换为字符串
B2A = s
End Function摘自:网络整理★VB部分相关文章推荐:★
☆VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
☆VB SendMessage向其他程序窗口发送字符串消息实例
☆VB中Null, Empty, Nothing, and vbNullString的区别
☆用RtlAdjustPrivilege来调整进程权限(VB6.0代码)
☆[VB]SaveSetting 语句 和 DeleteSetting 语句
☆[vb]利用WScript.Shell对象隐藏cmd命令行运行
更多精彩>>> -
vb各进制转换代码.pdf
2020-03-01 13:56:15VB VVBB 各种进制相互转换大全 ' 用途将十进制转化为二进制 ' 输入Dec(十进制数) ' 输入数据类型Long ' 输出DEC_to_BIN(二进制数) ' 输出数据类型String ' 输入的最大数为2147483647,输出最大数为... -
VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转--转载的
2013-08-09 11:05:29原文地址:http://www.newxing.com/Tech/Program/VisualBasic/748.html...八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六进制 十六进制转化为二进制 十六进制模块包含了下面的各种转换: 二进制转十进制 二进制转化为八进制 二进制转化为十六进制 八进制转化为十进制 八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六进制 十六进制转化为二进制 十六进制转化为八进制 十六进制转化为十进制 16进制转ASC 10进制长整数转4位16进制字符串 10进制长整数转2位16进制字符串 ASCII字符串转16进制字符串 反16进制数转10进制数,共8位 反16进制数转10进制数,共6位 反16进制数转10进制数,共4位 10进制数转反16进制数,共8位 0进制数转反16进制数,共6位 10进制数转反16进制数,共4位 记录集转二进制流 ASCII码转二进制流 二进制流转ASCII码 VBScript code复制代码'二进制转十进制 Public Function B2D(vBStr As String) As Long Dim vLen As Integer '串长 Dim vDec As Long '结果 Dim vG As Long '权值 Dim vI As Long '位数 Dim vTmp As String '临时串 Dim vN As Long '中间值 vLen = Len(vBStr) vG = 1 '初始权值 vDec = 0 '结果初值 B2D = vDec '返回初值 For vI = vLen To 1 Step -1 vTmp = Mid(vBStr, vI, 1) '取出当前位 vN = Val(vTmp) If vN < 2 Then '判断是不是合法二进制串,貌似不严谨,E文和符号会被判0而合法 vDec = vDec + vG * vN '得到中间结果 vG = vG + vG Else vDec = 0 'msgbox "不是有效的二进制数",vbokonly Exit Function End If Next vI B2D = vDec End Function '十进制转二进制 Public Function D2B(Dec As Long) As String D2B = "" Do While Dec > 0 D2B = Dec Mod 2 & D2B Dec = Dec \ 2 Loop End Function ' 用途:将十六进制转化为二进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:H2B(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function H2B(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 H2B = b End Function ' 用途:将二进制转化为十六进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:B2H(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function B2H(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 B2H = H End Function ' 用途:将十六进制转化为十进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:H2D(十进制数) ' 输出数据类型:Long ' 输入的最大数为7FFFFFFF,输出的最大数为2147483647 Public Function H2D(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 H2D = b End Function ' 用途:将十进制转化为十六进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:D2H(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为7FFFFFFF Public Function D2H(Dec As Long) As String Dim a As String D2H = "" 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 D2H = a & D2H Dec = Dec \ 16 Loop End Function ' 用途:将十进制转化为八进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:D2O(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为17777777777 Public Function D2O(Dec As Long) As String D2O = "" Do While Dec > 0 D2O = Dec Mod 8 & D2O Dec = Dec \ 8 Loop End Function ' 用途:将八进制转化为十进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:O2D(十进制数) ' 输出数据类型:Long ' 输入的最大数为17777777777,输出的最大数为2147483647 Public Function O2D(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 O2D = b End Function ' 用途:将二进制转化为八进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:B2O(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function B2O(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 B2O = H End Function ' 用途:将八进制转化为二进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:O2B(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function O2B(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 O2B = b End Function ' 用途:将八进制转化为十六进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:O2H(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function O2H(ByVal Oct As String) As String Dim Bin As String Bin = O2B(Oct) O2H = B2H(Bin) End Function ' 用途:将十六进制转化为八进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:H2O(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function H2O(ByVal Hex As String) As String Dim Bin As String Hex = UCase(Hex) Bin = H2B(Hex) H2O = B2O(Bin) End Function '==================================================== '16进制转ASC Function H2A(InputData As String) As String Dim mydata mydata = Chr(Val("&H" & InputData)) H2A = mydata Exit Function End Function '10进制长整数转4位16进制字符串 Function S2H(Num As Long) As String Dim mynum As String mynum = Hex(Num) If Len(mynum) = 1 Then mynum = "000" + mynum If Len(mynum) = 2 Then mynum = "00" + mynum If Len(mynum) = 3 Then mynum = "0" + Left(mynum, 2) + Right(mynum, 1) If Len(mynum) = 4 Then mynum = Right(mynum, 2) + Left(mynum, 2) S2H = mynum End Function '10进制长整数转2位16进制字符串 Function S2H2(Num As Long) As String Dim mynum As String mynum = Hex(Num) If Len(mynum) = 1 Then mynum = "0" + mynum S2H2 = mynum End Function 'ASCII字符串转16进制字符串 Public Function A2H(str As String) As String Dim strlen As Integer Dim i As Integer Dim mystr As String mystr = "" strlen = Len(str) For i = 1 To strlen Step 1 mystr = mystr + Hex$(Asc(Mid(str, i, 1))) Next i A2H = mystr End Function '===================================================== '进制反转 '===================================================== '反16进制数转10进制数,共8位 Function FHexToInt(ByVal str As String) As String Dim text1 As String text1 = str Dim text2 As String text2 = Mid(text1, 7, 2) Dim text3 As String text3 = Mid(text1, 5, 2) Dim text4 As String text4 = Mid(text1, 3, 2) Dim text5 As String text5 = Mid(text1, 1, 2) FHexToInt = Val("&H" & text2 & text3 & text4 & text5) Exit Function End Function '反16进制数转10进制数,共6位 Function FHexToInt6(ByVal str As String) As String Dim text1 As String text1 = str Dim text2 As String text2 = Mid(text1, 5, 2) Dim text4 As String text3 = Mid(text1, 3, 2) Dim text5 As String text4 = Mid(text1, 1, 2) FHexToInt6 = Val("&H" & text2 & text3 & text4) Exit Function End Function '反16进制数转10进制数,共4位 Function FHexToInt4(ByVal str As String) As String Dim text1 As String text1 = str Dim text2 As String text2 = Mid(text1, 3, 2) Dim text4 As String text3 = Mid(text1, 1, 2) FHexToInt4 = Val("&H" & text2 & text3) Exit Function End Function '10进制数转反16进制数,共8位 Function IntToFHex(ByVal nums As Long) As String Dim text1 As String 'text1 = Convert.ToString(nums, &H10) text1 = O2H(nums) If (Len(text1) = 1) Then text1 = ("0000000" & text1) End If If (Len(text1) = 2) Then text1 = ("000000" & text1) End If If (Len(text1) = 3) Then text1 = ("00000" & text1) End If If (Len(text1) = 4) Then text1 = ("0000" & text1) End If If (Len(text1) = 5) Then text1 = ("000" & text1) End If If (Len(text1) = 6) Then text1 = ("00" & text1) End If If (Len(text1) = 7) Then text1 = ("0" & text1) End If Dim text2 As String text2 = Mid(text1, 7, 2) Dim text3 As String text3 = Mid(text1, 5, 2) Dim text4 As String text4 = Mid(text1, 3, 2) Dim text5 As String text5 = Mid(text1, 1, 2) IntToFHex = text2 & text3 & text4 & text5 Exit Function End Function '10进制数转反16进制数,共6位 Function IntToFHex6(ByVal nums As Long) As String Dim text1 As String text1 = O2H(nums) If (Len(text1) = 1) Then text1 = ("00000" & text1) End If If (Len(text1) = 2) Then text1 = ("0000" & text1) End If If (Len(text1) = 3) Then text1 = ("000" & text1) End If If (Len(text1) = 4) Then text1 = ("00" & text1) End If If (Len(text1) = 5) Then text1 = ("0" & text1) End If Dim text2 As String text2 = Mid(text1, 5, 2) Dim text3 As String text3 = Mid(text1, 3, 2) Dim text4 As String text4 = Mid(text1, 1, 2) IntToFHex6 = text2 & text3 & text4 Exit Function End Function '10进制数转反16进制数,共4位 Function IntToFHex4(ByVal nums As Long) As String Dim text1 As String text1 = O2H(nums) If (Len(text1) = 1) Then text1 = ("000" & text1) End If If (Len(text1) = 2) Then text1 = ("00" & text1) End If If (Len(text1) = 3) Then text1 = ("0" & text1) End If Dim text2 As String text2 = Mid(text1, 3, 2) Dim text3 As String text3 = Mid(text1, 1, 2) IntToFHex4 = text2 & text3 Exit Function End Function '========================================== Public Function B2S(ByVal str As Byte) strto = "" For i = 1 To LenB(str) If AscB(MidB(str, i, 1)) > 127 Then strto = strto & Chr(AscB(MidB(str, i, 1)) * 256 + AscB(MidB(str, i + 1, 1))) i = i + 1 Else strto = strto & Chr(AscB(MidB(str, i, 1))) End If Next B2S = strto End Function Public Function V2H(ByVal sHex As String, Optional bUnicode As Boolean) Dim sByte As Variant Dim byChar() As Byte Dim i As Long sHex = Replace(sHex, vbCrLf, "") sByte = Split(sHex, " ") ReDim byChar(0 To UBound(sByte)) As Byte For i = 0 To UBound(sByte) byChar(i) = Val("&h" & sByte(i)) Next If bUnicode Then V2H = byChar Else V2H = StrConv(byChar, vbUnicode) End If End Function '记录集转二进制流 Public Function R2B(rs As Recordset) As Variant '记录集转换为二进制数据 Dim objStream As Stream Set objStream = New Stream objStream.Open objStream.Type = adTypeBinary rs.Save objStream, adPersistADTG objStream.Position = 0 R2B = objStream.Read() Set objStream = Nothing End Function 'ASCII码转二进制流 Public Function A2B(str As String) As Variant Dim a() As Byte, s As String s = str a = StrConv(s, vbFromUnicode) '字符串转换为byte型 'a 是byte数组,你可以在程序中调用 ,但不能在textbox中显示。 A2B = a End Function '二进制流转ASCII码 Public Function B2A(vData As Variant) As String Dim s As String s = StrConv(vData, vbUnicode) 'byte型转换为字符串 B2A = s End Function
-
vb题将十进制正整数转换为二进制.txt
2021-03-21 12:56:11vb题将十进制正整数转换为二进制.txt -
VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转--转载的...
2013-08-09 11:05:00原文地址:http://www.newxing.com/Tech/Program/VisualBasic/748.html...八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六进制 十六进制转化为二进制 十六...原文地址:http://www.newxing.com/Tech/Program/VisualBasic/748.html
模块包含了下面的各种转换: 二进制转十进制 二进制转化为八进制 二进制转化为十六进制 八进制转化为十进制 八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六进制 十六进制转化为二进制 十六进制转化为八进制 十六进制转化为十进制 16进制转ASC 10进制长整数转4位16进制字符串 10进制长整数转2位16进制字符串 ASCII字符串转16进制字符串 反16进制数转10进制数,共8位 反16进制数转10进制数,共6位 反16进制数转10进制数,共4位 10进制数转反16进制数,共8位 0进制数转反16进制数,共6位 10进制数转反16进制数,共4位 记录集转二进制流 ASCII码转二进制流 二进制流转ASCII码 VBScript code复制代码'二进制转十进制 Public Function B2D(vBStr As String) As Long Dim vLen As Integer '串长 Dim vDec As Long '结果 Dim vG As Long '权值 Dim vI As Long '位数 Dim vTmp As String '临时串 Dim vN As Long '中间值 vLen = Len(vBStr) vG = 1 '初始权值 vDec = 0 '结果初值 B2D = vDec '返回初值 For vI = vLen To 1 Step -1 vTmp = Mid(vBStr, vI, 1) '取出当前位 vN = Val(vTmp) If vN < 2 Then '判断是不是合法二进制串,貌似不严谨,E文和符号会被判0而合法 vDec = vDec + vG * vN '得到中间结果 vG = vG + vG Else vDec = 0 'msgbox "不是有效的二进制数",vbokonly Exit Function End If Next vI B2D = vDec End Function '十进制转二进制 Public Function D2B(Dec As Long) As String D2B = "" Do While Dec > 0 D2B = Dec Mod 2 & D2B Dec = Dec \ 2 Loop End Function ' 用途:将十六进制转化为二进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:H2B(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function H2B(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 H2B = b End Function ' 用途:将二进制转化为十六进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:B2H(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function B2H(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 B2H = H End Function ' 用途:将十六进制转化为十进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:H2D(十进制数) ' 输出数据类型:Long ' 输入的最大数为7FFFFFFF,输出的最大数为2147483647 Public Function H2D(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 H2D = b End Function ' 用途:将十进制转化为十六进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:D2H(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为7FFFFFFF Public Function D2H(Dec As Long) As String Dim a As String D2H = "" 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 D2H = a & D2H Dec = Dec \ 16 Loop End Function ' 用途:将十进制转化为八进制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:D2O(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为17777777777 Public Function D2O(Dec As Long) As String D2O = "" Do While Dec > 0 D2O = Dec Mod 8 & D2O Dec = Dec \ 8 Loop End Function ' 用途:将八进制转化为十进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:O2D(十进制数) ' 输出数据类型:Long ' 输入的最大数为17777777777,输出的最大数为2147483647 Public Function O2D(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 O2D = b End Function ' 用途:将二进制转化为八进制 ' 输入:Bin(二进制数) ' 输入数据类型:String ' 输出:B2O(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function B2O(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 B2O = H End Function ' 用途:将八进制转化为二进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:O2B(二进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function O2B(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 O2B = b End Function ' 用途:将八进制转化为十六进制 ' 输入:Oct(八进制数) ' 输入数据类型:String ' 输出:O2H(十六进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function O2H(ByVal Oct As String) As String Dim Bin As String Bin = O2B(Oct) O2H = B2H(Bin) End Function ' 用途:将十六进制转化为八进制 ' 输入:Hex(十六进制数) ' 输入数据类型:String ' 输出:H2O(八进制数) ' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function H2O(ByVal Hex As String) As String Dim Bin As String Hex = UCase(Hex) Bin = H2B(Hex) H2O = B2O(Bin) End Function '==================================================== '16进制转ASC Function H2A(InputData As String) As String Dim mydata mydata = Chr(Val("&H" & InputData)) H2A = mydata Exit Function End Function '10进制长整数转4位16进制字符串 Function S2H(Num As Long) As String Dim mynum As String mynum = Hex(Num) If Len(mynum) = 1 Then mynum = "000" + mynum If Len(mynum) = 2 Then mynum = "00" + mynum If Len(mynum) = 3 Then mynum = "0" + Left(mynum, 2) + Right(mynum, 1) If Len(mynum) = 4 Then mynum = Right(mynum, 2) + Left(mynum, 2) S2H = mynum End Function '10进制长整数转2位16进制字符串 Function S2H2(Num As Long) As String Dim mynum As String mynum = Hex(Num) If Len(mynum) = 1 Then mynum = "0" + mynum S2H2 = mynum End Function 'ASCII字符串转16进制字符串 Public Function A2H(str As String) As String Dim strlen As Integer Dim i As Integer Dim mystr As String mystr = "" strlen = Len(str) For i = 1 To strlen Step 1 mystr = mystr + Hex$(Asc(Mid(str, i, 1))) Next i A2H = mystr End Function '===================================================== '进制反转 '===================================================== '反16进制数转10进制数,共8位 Function FHexToInt(ByVal str As String) As String Dim text1 As String text1 = str Dim text2 As String text2 = Mid(text1, 7, 2) Dim text3 As String text3 = Mid(text1, 5, 2) Dim text4 As String text4 = Mid(text1, 3, 2) Dim text5 As String text5 = Mid(text1, 1, 2) FHexToInt = Val("&H" & text2 & text3 & text4 & text5) Exit Function End Function '反16进制数转10进制数,共6位 Function FHexToInt6(ByVal str As String) As String Dim text1 As String text1 = str Dim text2 As String text2 = Mid(text1, 5, 2) Dim text4 As String text3 = Mid(text1, 3, 2) Dim text5 As String text4 = Mid(text1, 1, 2) FHexToInt6 = Val("&H" & text2 & text3 & text4) Exit Function End Function '反16进制数转10进制数,共4位 Function FHexToInt4(ByVal str As String) As String Dim text1 As String text1 = str Dim text2 As String text2 = Mid(text1, 3, 2) Dim text4 As String text3 = Mid(text1, 1, 2) FHexToInt4 = Val("&H" & text2 & text3) Exit Function End Function '10进制数转反16进制数,共8位 Function IntToFHex(ByVal nums As Long) As String Dim text1 As String 'text1 = Convert.ToString(nums, &H10) text1 = O2H(nums) If (Len(text1) = 1) Then text1 = ("0000000" & text1) End If If (Len(text1) = 2) Then text1 = ("000000" & text1) End If If (Len(text1) = 3) Then text1 = ("00000" & text1) End If If (Len(text1) = 4) Then text1 = ("0000" & text1) End If If (Len(text1) = 5) Then text1 = ("000" & text1) End If If (Len(text1) = 6) Then text1 = ("00" & text1) End If If (Len(text1) = 7) Then text1 = ("0" & text1) End If Dim text2 As String text2 = Mid(text1, 7, 2) Dim text3 As String text3 = Mid(text1, 5, 2) Dim text4 As String text4 = Mid(text1, 3, 2) Dim text5 As String text5 = Mid(text1, 1, 2) IntToFHex = text2 & text3 & text4 & text5 Exit Function End Function '10进制数转反16进制数,共6位 Function IntToFHex6(ByVal nums As Long) As String Dim text1 As String text1 = O2H(nums) If (Len(text1) = 1) Then text1 = ("00000" & text1) End If If (Len(text1) = 2) Then text1 = ("0000" & text1) End If If (Len(text1) = 3) Then text1 = ("000" & text1) End If If (Len(text1) = 4) Then text1 = ("00" & text1) End If If (Len(text1) = 5) Then text1 = ("0" & text1) End If Dim text2 As String text2 = Mid(text1, 5, 2) Dim text3 As String text3 = Mid(text1, 3, 2) Dim text4 As String text4 = Mid(text1, 1, 2) IntToFHex6 = text2 & text3 & text4 Exit Function End Function '10进制数转反16进制数,共4位 Function IntToFHex4(ByVal nums As Long) As String Dim text1 As String text1 = O2H(nums) If (Len(text1) = 1) Then text1 = ("000" & text1) End If If (Len(text1) = 2) Then text1 = ("00" & text1) End If If (Len(text1) = 3) Then text1 = ("0" & text1) End If Dim text2 As String text2 = Mid(text1, 3, 2) Dim text3 As String text3 = Mid(text1, 1, 2) IntToFHex4 = text2 & text3 Exit Function End Function '========================================== Public Function B2S(ByVal str As Byte) strto = "" For i = 1 To LenB(str) If AscB(MidB(str, i, 1)) > 127 Then strto = strto & Chr(AscB(MidB(str, i, 1)) * 256 + AscB(MidB(str, i + 1, 1))) i = i + 1 Else strto = strto & Chr(AscB(MidB(str, i, 1))) End If Next B2S = strto End Function Public Function V2H(ByVal sHex As String, Optional bUnicode As Boolean) Dim sByte As Variant Dim byChar() As Byte Dim i As Long sHex = Replace(sHex, vbCrLf, "") sByte = Split(sHex, " ") ReDim byChar(0 To UBound(sByte)) As Byte For i = 0 To UBound(sByte) byChar(i) = Val("&h" & sByte(i)) Next If bUnicode Then V2H = byChar Else V2H = StrConv(byChar, vbUnicode) End If End Function '记录集转二进制流 Public Function R2B(rs As Recordset) As Variant '记录集转换为二进制数据 Dim objStream As Stream Set objStream = New Stream objStream.Open objStream.Type = adTypeBinary rs.Save objStream, adPersistADTG objStream.Position = 0 R2B = objStream.Read() Set objStream = Nothing End Function 'ASCII码转二进制流 Public Function A2B(str As String) As Variant Dim a() As Byte, s As String s = str a = StrConv(s, vbFromUnicode) '字符串转换为byte型 'a 是byte数组,你可以在程序中调用 ,但不能在textbox中显示。 A2B = a End Function '二进制流转ASCII码 Public Function B2A(vData As Variant) As String Dim s As String s = StrConv(vData, vbUnicode) 'byte型转换为字符串 B2A = s End Function
-
VB.NET学习笔记:数据类型——进制转换(二进制、八进制、十进制和十六进制相互转换)
2019-01-10 12:14:57在.NET Framework中,System.Convert类中的ToString方法和ToInt32(ToInt64)方法都可以方便的实现各种进制间的相互转换。...即可以将十进制整数转换成二进制、八进制、十进制(无实际意义)或十...在.NET Framework中,System.Convert类中的ToString方法和ToInt32(ToInt64)方法都可以方便的实现各种进制间的相互转换。
1、Convert .ToString 方法
Convert .ToString 方法可以将整数值转换为其指定基数(必须是 2、8、10 或 16)的等效字符串表示形式。即可以将十进制整数转换成二进制、八进制、十进制(无实际意义)或十六进制数字的字符串。
Convert .ToString(value,toBase)
参数:value——整型,要转换的整数;toBase—— System .Int32 ,返回值的基数,必须是 2、8、10 或 16。
返回值:System .String ,以 toBase 为基的 value 的字符串表示形式。
如:Dim int As Integer = 256 '十进制转二进制 Dim str2 As String = Convert.ToString(int, 2) '十进制转八进制 Dim str8 As String = Convert.ToString(int, 8) '十进制转十进制 Dim str10 As String = Convert.ToString(int, 10) '十进制转十六进制 Dim str16 As String = Convert.ToString(int, 16) Console.WriteLine("十进制转二进制:" & str2) Console.WriteLine("十进制转八进制:" & str8) Console.WriteLine("十进制转十进制:" & str10) Console.WriteLine("十进制转十六进制:" & str16)
测试结果如图:
2、Convert .ToInt32(ToInt64) 方法
将指定基数的数字的字符串表示形式转换为等效的整数。即可以将二进制、八进制、十进制(无实际意义)或十六进制整数的字符串表示形式转换为十进制的数字(整型)。
Convert .ToUInt64(value,fromBase)
参数:value—— System .String ,包含要转换的数字的字符串;fromBase——System .Int32 ,value 中数字的基数,它必须是 2、8、10 或 16。
返回值:整型,与 value 中数字等效的 整数,如果 value 为 Nothing,则为 0(零)。
如:'二进制 Dim str2 As String = "100000000" '八进制 Dim str8 As String = "400" '十六进制 Dim str16 As String = "100" '二进制转十进制 Dim int2 As Integer = Convert.ToInt32(str2, 2) '八进制转十进制 Dim int8 As Integer = Convert.ToInt32(str8, 8) '十六进制转十进制 Dim int16 As Integer = Convert.ToInt32(str16, 16)
3、二进制、八进制、十进制或十六进制间任意互转(输出字符串)
先把字符串转换成十进制数字,再把数字转换成其他进制的字符串。
Sub Main() '二进制 Dim str2 As String = "100000000" '八进制 Dim str8 As String = "400" '十六进制 Dim str16 As String = "100" '二进制转十六进制 Dim str2to16 As String = ConvertString(str2, 2, 16) '八进制转十六进制 Dim str8to16 As String = ConvertString(str8, 8, 16) '十六进制转二进制 Dim str16to2 As String = ConvertString(str16, 16, 2) End Sub ''' <summary> ''' 进制转换 ''' </summary> ''' <param name="value">二进制、八进制、十进制或十六进制整数的字符串表示形式</param> ''' <param name="fromBase">与value值中的相对应的基数(2、8、10或16)</param> ''' <param name="toBase">要转换成的进制基数(2、8、10或16)</param> ''' <returns></returns> Private Function ConvertString(ByVal value As String, ByVal fromBase As Int32, ByVal toBase As Int32) As String Dim intValue As Integer = Convert.ToInt32(value, fromBase) Return Convert.ToString(intValue, toBase) End Function
4、其他进制转换方法
Object.ToString方法或String.Format方法可以将十进制整数转换成十六进制的数字字符串表现形式,但没有提供其他进制的转换。
如:Dim int As Integer = 256 Dim strS As String = int.ToString("x") Dim strF As String = String.Format("{0:x}", int)
5、进制基础知识
比如十进制的15,其二进制为1111,八进制为17,而16进制为F,各种进制之间是如何转换的呢?
(1)二进制、八进制、十六进制转十进制
可见,在十进制中,每一位表示10的幂,要知道十进制位所代表的具体数字,可以将相应数字乘以10的幂,然后把结果相加。
按照同样的方法,二进制中,每一位表示2的幂,则应将数字乘以2的幂,然后把结果相加即可得到相应的十进制数。
依此类推,八进制和十六进制都可以按此方法转换为十进制。(2)十进制转二进制、八进制、十六进制
方法:除相应进制的基数(如二进制的基数为2、八进制的基数为8、十六进制的基数为16)取余法,即每次将整数部分除以基数,余数为该位权上的数,而商继续除以基数,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
例:将十进制的(15)转换为二进制的步骤如下:- 将商15除以2,商7余数为1;
- 将商7除以2,商3余数为1;
- 将商3除以2,商1余数为1;
- 将商1除以2,商0余数为1;
- 读数,读数字从最后的余数向前读,1111。
将十进制的(15)转换为八进制的步骤如下:
1、 将商15除以8,商1余数为7;
2、将商1除以8,商0余数为1;
3、 读数,读数字从最后的余数向前读,17。将十进制的(15)转换为十六进制的步骤如下:
1、 将商15除以16,商0余数为15;
2、读数,读数字从最后的余数向前读,15,十六进制用字母F表示。 -
VB中进制转换
2007-01-29 11:23:00用途:将十进制转化为二进制 输入:Dec(十进制数) 输入数据类型:Long 输出:DEC_to_BIN(二进制数) 输出数据类型:String 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)Public... -
java中loop使十进制转八进制_十进制,八进制,十六进制,二进制相互转换(vb)
2021-03-22 16:09:25十进制,八进制,十六进制,二进制相互转换' 用途:将十进制转化为二进' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_BIN(二进制数)' 输出数据类型:String' 输入的最大数为2147483647,输出最大数为... -
十进制转换二进制(补码)
2005-05-04 19:59:00借鉴了反码算法的经验,在转换为补码的函数中,要以求反码函数为基础,...十进制转换为二进制补码的VB6代码:Public Function BinaryConvertC(ByVal iNum As Integer, Optional ByVal iLength As Integer = 8) As String -
VB 各种进制相互转换大全
2012-02-24 15:22:59'-------------------------------------------------' 用途:将十进制转化为二进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_BIN(二进制数)' 输出数据类型:String' 输入的最大数为2147483647,输出... -
十进制转换二进制(反码)
2005-05-04 19:38:00这是段把十进制数转换为二进制反码的VB6代码,这段代码需要转换为原码函数(BinaryConvertA)的支持,开始的时候,我把它写成一个了独立的函数,但最后还是改到了现在这个样子,感觉如果转换原码代码部分有错误,可以把错误... -
VB进制转换大全
2011-01-24 13:35:16' 用途:将十进制转化为二 进 制 ' 输入:Dec(十进制数) ' 输入数据类型:Long ' 输出:DEC_to_BIN(二 进 制数) ' 输出数据类型:String ' 输入的最大数为2147483647,输出最大数为... -
用VB做的简单的进制转换
2008-11-25 16:36:21用VB做的简单的进制转换,可以把十进制转换为二进制,八进制和十六进制。 -
VB 各种进制相互转换
2007-08-11 15:26:00------------------------------------------------- 用途:将十进制转化为二进制 输入:Dec(十进制数) 输入数据类型:Long 输出:DEC_to_BIN(二进制数) 输出数据类型:String 输入的最大数为2147483647,输出最大数... -
VB6.0 中带小数的十进制数如何转换为二进制
2013-01-15 00:04:06各位大虾,本人刚接触VB6.0 ,不知道带小数的十进制数如何转换为二进制,请提供代码以代学习,谢谢! -
VB 各种进制相互转换大全(一)
2008-08-29 10:44:00用途:将十进制转化为二进制输入:Dec(十进制数)输入数据类型:Long输出:DEC_to_BIN(二进制数)输出数据类型:String输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)Public Function ... -
VB6支持96个1的二进制与十进制的互相转换程序
2010-03-22 12:13:00VB6支持96个1的二进制与十进制的互相转换程序 Public Function BIN_to_DEC(ByVal Bin As String) As Variant****************************************************************** 用途:将二进制转化为十进制 输入... -
vb.net浮点数转换成十进制数如何实现_单片机浮点数
2020-12-09 11:13:20浮点数保存的字节格式如下S 代表符号位,1 是负,0 是正E 偏移127 的幂,二进制阶码=(EEEEEEEE)-127。M 24 位的尾数保存在23 位中,只存储23 位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了... -
vb下各种进制的转换
2011-09-30 10:19:19'' 用途:将十进制转化为二进制 '' 输入:Dec(十进制数) '' 输入数据类型:Long '' 输出:DEC_to_BIN(二进制数) '' 输出数据类型:String '' 输入的最大数为2147483647,输出最大数为11111111111111111111 -
VB中各种进制的转换
2007-11-16 16:27:00------------------------------------------------- 用途:将十进制转化为二进制 输入:Dec(十进制数) 输入数据类型:Long 输出:DEC_to_BIN(二进制数) 输出数据类型:String 输入的最大数为2147483647,输出最大数... -
二十六进制换算法VB源码
2016-05-19 17:53:25二十六进制换算法。福建吴世昌原创。 类似于16进制,26进制是每逢26进1位,用a-z表示0-25,可以把数字转换成字母串。也可把字母串还原为数字。 适合用来实现数字串缩短,或简单的加密解密。 -
十六进制异或运算法则_异或...y转换为二进制,并将转换的每位二进制数存储到数组a,b中;如果两个二进制位...
2021-01-13 10:08:59(2)实现上述功能的VB程序如下,请在①、②、③的划线处填入合适的代码。Dim m As Integer' 学生人数Dim score(1 To 3000) As Integer ' 存放学生分数Dim xm(1 To 1000) As String ' 存放学生姓名Private Sub Command... -
进制和代码转换工具.rar
2019-09-03 21:05:26进制转换和数码管代码生成工具 该工具用VB写的,可实现二进制、十进制和十六进制相互即时转换,实现共阴共阳数码管任意管脚的七段码生成,软件提供两种常用管脚排列可以相互转换,也可自己输入。需要的朋友请下载... -
VB中各种进制的表示
2012-07-11 10:13:00H限定 表示八进制、十六进制数 不加的话 默认为十进制的 二进制好像没有 HEX()函数是将数值转换成十六进制 OCT()是。。。八进制 转载于:https://www.cnblogs.com/darrenz/archive/2012/07/11/2585770.html...