17.【加試題】曲哲同學(xué)設(shè)計了一個英文字符串的加密算法,其加密的方法如下:
(1)從被加密字符串中獲取單個字符,然后得到其ascii碼的8位二進制編碼.
(2)將字符的二進制編碼反向,得到其逆序二進制碼.
(3)將逆序二進制碼的每4位轉(zhuǎn)換為相應(yīng)的十六進制編碼,即得到單個字符加密后的字符串.
(4)以此類推,直到所有字符加密完成,得到加密字符串.
具體程序界面如圖,在text1中輸入字符串,點擊“加密”按鈕command1后,在text2中顯示加密后的字符串.
(1)已知字符a的ascii碼為97,則字符串idear加密后的字符串為
.
(2)閱讀整段程序,程序中①橫線處應(yīng)填入
程序中②橫線處應(yīng)填入
.
Private Sub Command1_Click
Dim s As String,ch As String
Dim result As String,chA As String,chB As String
Dim i As Integer,j As Integer
Dim n As Integer,m As Integer
s=Text1.Text
n=Len(s)
result=““:c=“0123456789ABCDEF“
For i=1To n
ch=①
ch=niXu(ch)
m=0
For j=1To 4'獲取二進制碼前4位的值②
Next
chA=Mid(c,m+1,1)
m=0
For j=5To Len(ch)
m=m*2+Val(Mid(ch,j,1))
Next
chB=Mid(c,m+1,1)
result=result+chA+chB
Next
Text2.Text=result
End Sub
'得到單個字符ch的8位二進制編碼
Function D2B(ByVal ch As String) As String
Dim s As String
Dim data As Integer,i As Integer
data=Asc(ch):s=““
Do While data>0
s=Str(data Mod 2)+s
data=data\2
Loop
If Len(s)<8Then
For i=1To 8-Len(s)
s=“0“+s
Next
D2B=s
Else
D2B=s
End If
End Function
'返回字符串s的逆序
Function niXu(ByVal s As String) As String
Dim i As Integer:Dim r As String
r=““
For i=Len(s) To 1Step-1
r=r+Mid(s,i,1)
Next
niXu=r
End Function.