某字符串(字节数为3的倍数)编码规则如下:
⑴将该字符串内码分成3个字节一组,顺次连接后得到24位二进制数;
⑵将得到的24位二进制数字按每6位一组分成4组,每组6个位;
⑶在每组数字前补上两个0,得到4个字节的二进制数;
⑷将⑶中得到的四个二进制数分别转换为十进制数;
⑸将每个十进制数转换为1个加密字符,对应的“密码表”按数值由小到大依次为“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn
opqrstuvwxyz0123456789+/”。
小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:单击“加密”按钮Command1,程序依次将文本框Text1中每3个字符的ASCII码值作为4个字节转换为四个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。程序运行效果如下图所示。
实现上述功能的VB程序如下:
(1)
在上述加密算法步骤⑷中,得到的十进制数最大是。
(2)
实现上述功能的VB程序如下。请在划线处填入合适代码。
Function Code2Char(c As
Integer) As String
Dim s As String
s=“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”
Code2Char=
End Function
Private Sub Command1_Click()
‘加密过程
Dim n As Integer, s As
String, i As Integer, ss As String
Dim a1 As Integer,a2 As
Integer,a3 As Integer ‘存储加密前字符的ASCII码
Dim b1 As Integer,b2 As
Integer ‘分别存储分割、转换后的前两个十进制数
Dim b3 As Integer,b4 As
Integer ‘分别存储分割、转换后的后两个十进制数
s = Text1.Text : n= Len(s)
: ss =“”
For i = 1 To n
a1 = Asc(Mid(s, i, 1))
a2 = Asc(Mid(s, i+1,1))
a3 = Asc(Mid(s, i+2,1))
b1 = a1 \ 4
b2 = (a1 Mod 4) * 16 + (a2 \ 16)
b3 =
b4 = a3 Mod 64
ss = ss + Code2Char(b1) + Code2Char(b2) + Code2Char(b3)
+ Code2Char(b4)
Next i
Text2.Text = ss
End Sub
答案: 【1】63
【1】Mid(s,c+1,1)【2】Step 3【3】(a2 Mod 16) * 4 + (a3 \ 64)