Private Sub Command5_Click() Dim i As Byte i = 4 MsgBox GetBinary(i) End Sub Private Function GetBinary(vData As Variant) As String Dim MyData As Long Dim S As String, Y As String Dim i As IntegerConst Bins = "0000000100100011010001010110011110001001101010111100110111101111" MyData = AscB(vData) Y = Hex(MyData) S = "" For i = 1 To Len(Y) S = S + Mid(Bins, (Val("&h" + Mid(Y, i, 1)) * 4 + 1), 4) Next i GetBinary = Trim(S) 'Format(s, "0") End Function
Private Function getbinary(number As Integer) As String Dim binstr As String binstr = "" number = number + 1 For x = 7 To 0 Step -1 If number > 2 ^ x Then number = number - 2 ^ x binstr = binstr & "1" Else binstr = binstr & "0" End If Next getbinary = binstr End Function Private Sub Form_Load() Text1.Text = getbinary(567) Text2.Text = bintodec(Text1.Text) End Sub Private Function bintodec(binstr As String) As Integer Dim number As Integer For x = 0 To 7 If Mid(binstr, x + 1, 1) = "1" Then number = number + 2 ^ (7 - x) End If Next bintodec = number End Function
Option ExplicitPrivate Sub Command1_Click() Dim a As String Dim b As Stringa = GetBinary("abc") MsgBox a ' 输出 二进制 b = GetStrValue(a) MsgBox b ' 输出 源字符 End SubPrivate Function GetBinary(vData As String) As String '将字符换成二进制转的函数 Dim MyData As Long Dim S As String, Y As String Dim I As IntegerConst Bins = "0000000100100011010001010110011110001001101010111100110111101111" MyData = AscB(vData) Y = Hex(MyData) S = "" For I = 1 To Len(Y) S = S + Mid(Bins, (Val("&h" + Mid(Y, I, 1)) * 4 + 1), 4) Next I GetBinary = Trim(S) 'Format(s, "0") End FunctionPrivate Function GetStrValue(vData As String) As String '将二进制转换成字符的函数 Dim K As Long, D As Long, I As LongK = 1: D = 0 For I = Len(vData) To 1 Step -1 If Mid(vData, I, 1) = "1" Then D = D + K K = K * 2 Next I GetStrValue = Chr(D) End Function
Modbus(CRC)校验例程 Public Function CrcResult(ByVal Data As Long, ByVal Genpoly As Long, ByVal CrcData As Long) As LongDim TmpI As IntegerData = Data * 2For TmpI = 8 To 1 Step -1Data = Fix(Data / 2) If ((Data Xor CrcData) And 1) ThenCrcData = Fix(CrcData / 2) Xor GenpolyElseCrcData = Fix(CrcData / 2)End If Next TmpICrcResult = CrcDataEnd Function //函数应用方法Dim fx(7)Dim crc As Longfx(0) = Val(Text2.Text)fx(1) = &H3fx(2) = &H0fx(4) = &H0fx(5) = &H1fx(3) = MDI.Combo3.ListIndexcrc = &HFFFF&For TmpI = 0 To 5crc = CrcResult(CLng(fx(TmpI)), &HA001&, crc)Nextfx(6) = CByte(crc And &HFF&) ‘得到的校验高位fx(7) = CByte(Fix(crc / 256) And &HFF&) ‘得到的校验低位
Dim i As Byte
i = 4
MsgBox GetBinary(i)
End Sub
Private Function GetBinary(vData As Variant) As String
Dim MyData As Long
Dim S As String, Y As String
Dim i As IntegerConst Bins = "0000000100100011010001010110011110001001101010111100110111101111"
MyData = AscB(vData)
Y = Hex(MyData)
S = ""
For i = 1 To Len(Y)
S = S + Mid(Bins, (Val("&h" + Mid(Y, i, 1)) * 4 + 1), 4)
Next i
GetBinary = Trim(S) 'Format(s, "0")
End Function
Dim binstr As String
binstr = ""
number = number + 1
For x = 7 To 0 Step -1
If number > 2 ^ x Then
number = number - 2 ^ x
binstr = binstr & "1"
Else
binstr = binstr & "0"
End If
Next
getbinary = binstr
End Function
Private Sub Form_Load()
Text1.Text = getbinary(567)
Text2.Text = bintodec(Text1.Text)
End Sub
Private Function bintodec(binstr As String) As Integer
Dim number As Integer
For x = 0 To 7
If Mid(binstr, x + 1, 1) = "1" Then
number = number + 2 ^ (7 - x)
End If
Next
bintodec = number
End Function
bytRcv=StrConv(strRcv,vbFromUnicode )
strRcv是你接收到的字符串
Dim a As String
Dim b As Stringa = GetBinary("abc")
MsgBox a ' 输出 二进制
b = GetStrValue(a)
MsgBox b ' 输出 源字符
End SubPrivate Function GetBinary(vData As String) As String '将字符换成二进制转的函数
Dim MyData As Long
Dim S As String, Y As String
Dim I As IntegerConst Bins = "0000000100100011010001010110011110001001101010111100110111101111"
MyData = AscB(vData)
Y = Hex(MyData)
S = ""
For I = 1 To Len(Y)
S = S + Mid(Bins, (Val("&h" + Mid(Y, I, 1)) * 4 + 1), 4)
Next I
GetBinary = Trim(S) 'Format(s, "0")
End FunctionPrivate Function GetStrValue(vData As String) As String '将二进制转换成字符的函数
Dim K As Long, D As Long, I As LongK = 1: D = 0
For I = Len(vData) To 1 Step -1
If Mid(vData, I, 1) = "1" Then D = D + K
K = K * 2
Next I
GetStrValue = Chr(D)
End Function
Public Function CrcResult(ByVal Data As Long, ByVal Genpoly As Long, ByVal CrcData As Long) As LongDim TmpI As IntegerData = Data * 2For TmpI = 8 To 1 Step -1Data = Fix(Data / 2)
If ((Data Xor CrcData) And 1) ThenCrcData = Fix(CrcData / 2) Xor GenpolyElseCrcData = Fix(CrcData / 2)End If
Next TmpICrcResult = CrcDataEnd Function //函数应用方法Dim fx(7)Dim crc As Longfx(0) = Val(Text2.Text)fx(1) = &H3fx(2) = &H0fx(4) = &H0fx(5) = &H1fx(3) = MDI.Combo3.ListIndexcrc = &HFFFF&For TmpI = 0 To 5crc = CrcResult(CLng(fx(TmpI)), &HA001&, crc)Nextfx(6) = CByte(crc And &HFF&) ‘得到的校验高位fx(7) = CByte(Fix(crc / 256) And &HFF&) ‘得到的校验低位