下面所述是一字符串变换运算过程,向列位高手求助,怎样用Delphi7编写这段程序代码,恳请赐教。谢谢!过程为:
该字符串由2个大写字母及8个数字组成,例:HS43283558 ;分别查表并进行移位和或运算。
表1:"ABCDEFPWXYZQSTKH";表2:"23456789"
设该字符串的10个字符分别对应表内所处的位数值为:N1,N2,N3,N4,N5,N6,N7,N8,N9,N10;
算法过程:
1、((N1-1)SHL 4) OR (N2-1)= M ;
2、(N3-1) OR (M SHL 3) = M1;
3、(N4-1) OR (M1 SHL 3) = M2;
4、(N5-1) OR (M2 SHL 3) = M3;
5、(N6-1) OR (M3 SHL 3) = M4;
6、(N7-1) OR (M4 SHL 3) = M5;
7、(N8-1) OR (M5 SHL 3) = M6;
8、(N9-1) OR (M6 SHL 3) = M7;
9、(N10-1) OR (M7 SHL 3) = M8;
我用笨办法一步一步算,得出如下结果:
首字母“N1”为“H”处于表1中第16(位)-1=15(十六进制:F):
'F' SHL 4=000000F0 ;
次字母“N2”为“S”处于表1中第13(位)-1=12(十六进制:C);
000000F0 OR 0000000C=000000FC;
首数字“N3”为“4”处于表2中第3(位)-1=2;[2 OR (000000FC SHL 3=000007E0)]=000007E2;再分别与7个数字循环进行运算......
最后M8的结果=FC4462DE,不知表述得是否清楚,如有不是,请见谅。