字符串与二进制互相转化(不包含汉字)

原创 2003年10月20日 23:57:00

对于二进制与字符的互换,是由于我要做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

Java 计算含有汉字字符串长度

Java 计算含有汉字字符串的长度 思路:获得UTF-8字节流,然后判断单个字符是否为汉字...
  • puregold1124
  • puregold1124
  • 2015年09月11日 13:47
  • 500

使用python进行汉字与二进制之间的转换

背景:最近有人给我一大堆二进制,看的我眼花缭乱,最后得知这是汉字的编码,那肯定要转成汉字呀,当然不排除有标点、特殊符号、英文大小写字母等,但这些都比较简单,主要是汉字与二进制的转换稍微麻烦一点。最后简...
  • u014697424
  • u014697424
  • 2016年11月13日 16:00
  • 4526

检测字符串中是否含有中文

检测字符串中是否含有中文: 思路: 我们都知道,英文字符串和中文字符串最大的区别在于每一个英文字符占用一个字节,而每一个中文字符占用两个字节。 知道这一点,就为我们检测字符串中是否有中文提供了实...
  • ExceptionalBoy
  • ExceptionalBoy
  • 2017年02月09日 08:14
  • 723

Java判断字符串中是否包含中文

Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb, 不过通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会得到错...
  • carl_china
  • carl_china
  • 2015年09月01日 19:20
  • 4040

二进制,十进制,十六进制互相转化

二进制转化为十进制:(1)从右向左数,确定所数的数字是第几位(编号为n),转化为十进制的时候,用这个数乘以2的n-1次方,以此类推,将各个位上的数所得的式子相加即可,便得到了十进制数。特殊情况,如:二...
  • tigaobansongjiahuan8
  • tigaobansongjiahuan8
  • 2017年07月26日 20:21
  • 358

PHP 判断一段字符串是否包含另一段字符串

PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数 strstr,strpos,stristr直接进行判断.也可以通过e...
  • u012971242
  • u012971242
  • 2013年12月09日 09:54
  • 1780

ORACLE判别字段是否包含中文(P1)或中文包含非中文(P2)

在ORACLE数据库中如何查找那些字段里面包含中文的数据记录呢,有时候就是有这样的特殊需求,下面整理了一些判别字段中包含中文记录的几个方法   1:使用ASCIISTR函数判别   ASCIISTR函...
  • asdsa108
  • asdsa108
  • 2016年01月13日 14:39
  • 1213

根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串

分享一个工作中调用的工具类 public class PinYin2Abbreviation { // 简体中文的编码范围从B0A1(45217)一直到F7FE(63486) private s...
  • z1729734271
  • z1729734271
  • 2016年10月25日 09:28
  • 690

取指定的字符串,字符串里面有汉字和字母

汉字和字母的处理
  • wj903829182
  • wj903829182
  • 2014年07月03日 20:16
  • 1312

LeetCode之二进制字符串相加

刚开始刷leetcode,第一道题是给两个二进制的字符串,求这两个二进制相加以后的和,输出当然也是二进制的格式了。以下是题目:/** * Given two binary strings, retu...
  • u011521382
  • u011521382
  • 2016年07月13日 10:24
  • 2829
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串与二进制互相转化(不包含汉字)
举报原因:
原因补充:

(最多只允许输入30个字)