对于二进制与字符的互换,是由于我要做DES加密程序的需要才设计的 现在把我的源程序发布: 
先建立一个工程 在框架上画 两个textbox,命名为text1,text2 两个commandbutton, 命名为command1,command1 其他定义自己去该吧!
  rem 此程序由Qthinker制作,免费发布,可以修改,请保留此信息 Option Base 1 Private Function byte2bit(s As String) As String Dim i As Integer, j As Integer, k As Integer, ilen As Integer Dim by() As String Dim b() As Integer ilen = Len(s) ReDim by(ilen) ReDim b(ilen / 8) For k = 1 To ilen  by(k) = Mid$(s, k, 1)  Next k 
For i = 1 To (ilen / 8) If by(1 + 8 * (i - 1)) = "1" Then b(i) = b(i) Or &H80 Else b(i) = b(i) And &H7F  End If If by(2 + 8 * (i - 1)) = "1" Then  b(i) = b(i) Or &H40  Else   b(i) = b(i) And &HBF End If  If by(3 + 8 * (i - 1)) = "1" Then  b(i) = b(i) Or &H20  Else   b(i) = b(i) And &HDF End If  If by(4 + 8 * (i - 1)) = "1" Then  b(i) = b(i) Or &H10  Else  b(i) = b(i) And &HEF   End If  If by(5 + 8 * (i - 1)) = "1" Then  b(i) = b(i) Or &H8  Else  b(i) = b(i) And &HF7   End If  If by(6 + 8 * (i - 1)) = "1" Then  b(i) = b(i) Or &H4  Else  b(i) = b(i) And &HFB End If   If by(7 + 8 * (i - 1)) = "1" Then   b(i) = b(i) Or &H2   Else  b(i) = b(i) And &HFD  End If If by(8 + 8 * (i - 1)) = "1" Then  b(i) = b(i) Or "1"  Else  b(i) = b(i) And &HFE End If byte2bit = byte2bit & Chr$(b(i)) 
 Next i End Function Private Function bit2byte(s As String) As String Dim s2 As String Dim x As String Dim i As Integer, k As Integer Dim ilen As Integer 
ilen = Len(s) Dim b() Dim s1() ReDim s1(ilen) ReDim b(ilen * 8) s2 = "" For i = 1 To ilen  x = Mid$(s, i, 1)  s1(i) = Asc(x) 
  If s1(i) And &H80 Then      b(1 + 8 * (i - 1)) = 1   Else      b(1 + 8 * (i - 1)) = 0    End If 
  If s1(i) And &H40 Then       b(2 + 8 * (i - 1)) = 1    Else    b(2 + 8 * (i - 1)) = 0    End If     If s1(i) And &H20 Then      b(3 + 8 * (i - 1)) = 1    Else    b(3 + 8 * (i - 1)) = 0    End If 
If s1(i) And &H10 Then       b(4 + 8 * (i - 1)) = 1    Else    b(4 + 8 * (i - 1)) = 0    End If 
 If s1(i) And &H8 Then      b(5 + 8 * (i - 1)) = 1    Else    b(5 + 8 * (i - 1)) = 0    End If    If s1(i) And &H4 Then      b(6 + 8 * (i - 1)) = 1    Else    b(6 + 8 * (i - 1)) = 0    End If    If s1(i) And &H2 Then     b(7 + 8 * (i - 1)) = 1    Else    b(7 + 8 * (i - 1)) = 0    End If    If s1(i) And "1" Then      b(8 + 8 * (i - 1)) = 1 Else    b(8 + 8 * (i - 1)) = 0    End If    Next i 
For k = 1 To ilen * 8  s2 = s2 & b(k)   If k Mod 8 = 0 Then      s2 = s2   End If  Next k bit2byte = s2 End Function 
Private Sub Command1_Click() Dim s As String Dim s2 As String s = Text1.Text s2 = bit2byte(s) Text2.Text = s2 End Sub 
Private Sub Command2_Click() Dim s As String Dim s1 As String s = Text2.Text s1 = byte2bit(s) Text2.Text = s1 End Sub
   
 
  |