(1)将明文ASCII码分成3个字节一组,顺次连接后得到24位二进制数;
(2)将得到的24位二进制数字按每6位一组分成4组,每组6个位;
(3)在(2)中得到的6个位前补上两个0,得到4个字节的二进制数;
(4)将(3)中得到的四个二进制数分别转换为十进制数;
(5)将每个十进制数转换为1个加密字符,对应的“密码表”按数值由0到63次为“ABCDEFGHIJKLM-NOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”,小周按照上述规则,设计了一个解密VB程序,功能如下:
单击“解密”按钮Command1,程序依次将文本框Text1中每4个密文字符按加密规则转换为3个明文字符,连接这些明文字符,最后在文本框Text2中输出结果。程序运行效果如下图所示。
实现解密功能的VB程序如下,请回答下列问题:
(1)若密文字符串的长度是120,则解密后明文字符串的长度是__________。
(2)请在划线处填入合适代码。
①处代码______________;②处代码______________;③处代码______________。
Function Char2Int(c As String)As Integer
If c>="A" And c<="Z" Then '字母"A"的ASCII码是65
Char2Int = Asc(c)-65
ElseIf c>="a" And c<="2" Then '字母"a"的ASCII码是97Char2Int =Asc(c)-71
ElseIf c>="0" And c<="g" Then '数字"0"的ASCII码是48①
ElseIf c="+"ThenChar2Int = 62
ElseChar2Int = 63
End IfEnd Function
Private Sub Command1_Click()'解密过程
Dim n As Integer, s As String, i As Integer, ss As String Dim a(0 To 3)As Integer '依次存储一组4个密文按密码表换算出的数值
Dim. b(0 To 2)As Integer '依次存储一组3个明文字符的ASCII值
s=Text1.Text
n = Len(s)
ss= " "
For i = 1 To n Step 4
For j=i To i+ 3
a( ② )=Char2Int(Mid(s, j, 1))Next j
b(0)=a(0)*4+ a(1)\16
③
b(2)=(a(2)Mod 4)*64+a(3)
For j=0 To 2
ss =ss + Chr(b(j))Next j
Next iText2.Text =ss
End Sub
同类型试题
y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2
y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2