
①将该字符的ASCII码转换为8位二进制数;
②将后4位二进制数逐位取反(1变0,0变1)
③将操作②生成的4位二进制数均右移一-位, 原第4位变成新的第1位;
④将原来的前4位二进制数连接新的后4位二进制数成为最终加密后字符的内码。
例如字符“A”经过上述加密运算,可得到字符“M”。
|
ASCII码 |
转二进制数 |
后4位取反 |
后4位右移 |
拼合 |
转十进制 |
转字符 |
|
65D |
0100 0001B |
1110 |
0111 |
0100 0111B |
71D |
G |

Private Sub Command1_ Click()
Dim s As String, s1 As String, s2 As String, n As Integer
Dim x As Integer, i As Integer, j As Integer, C As Integer
Dim a(15) As String
a(0) = "000": a(1) = "0001": a(2) = "0010": a(3) =“011": a(4) = "0100":a(5) = "0101": a(6) ="0110": a(7) = "111": a(8) = "1000" a(9) ="1001":a(10) = "1010": a(11) ="1011": a(12) = "1100"a(13) = "1101": a(14)= "1110":a(15) ="1111"
s2 = "": s = Text1. Text
For i=1 To Len(s)
n = Asc(Mid(s, i, 1))
c=n Mod 16
s1 =
x = Va1(Mid(s1, 1,1))
For j=2 To 4
x=x+
Next j
x=(n/16)*16
s2 = s2 + Chr(x)
Next i
Text2. Text = s2
End Sub
①如果“一”号右边的字符按照ASCII码的顺序大于左边字符,输出时,用连续递增的字母或数字串替代其中的“一”号,例如"c-g"输出为"cdefg","3-7"输出为"34567"
②如果“一”号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,保留中间的“一”号,例如"a-a"输出时为"a-a","4-1"输出为"4-1"
③如果“一”号右边的字符恰好是左边字符的后续字符,则删除中间的“一”号,例如:"d-e"就输出为"de","3-4"应输出为“3-4"。
某同学按照上述算法,编写了VB程序,功能如下:在文本框Text1中输入简写字符串,单击“展开”按钮Command1后,程序进行字符串展开处理并显示在文本框Text2中。程序运行界面如图所示。

Private Sub Command1_Click( )
Dim st1,st2 As String,i,n As Integer
St1=Text1.Text
n=Len(s1)
st2=""
For i=1 To n
If pos(st1, i)<> "—" Then
st2=st2+ pos(st1, i)
Else
If pos(st1, i) <pos(st1, 1) Then
For j=Asc(pos(st1, i-1))+1To Asc(pos(st1, i+ 1))-1
①
Next j
Else
st2 = st2+"—"
End If
End If
Next i
Text2. Text = s2
End Sub
Function pos(s As String, x As Integer) As String
②
End Function
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。