请问这个函数的反函数该怎么写?(50分)

  • 主题发起人 longlybug
  • 开始时间
L

longlybug

Unregistered / Unconfirmed
GUEST, unregistred user!
function Encode1(var s:String):String;
var
i,j,len:Integer;
cur:Integer;
t:String;
begin
Result:='';
len:=Length(s);
i:=1;j:=0;
while i<=len do
begin
if i<len then
cur:=(ord(s) shr j) or ((ord(s[i+1]) shl (7-j)) and $ff)
else
cur:=(ord(s) shr j) and $7f;
FmtStr(t,'%2.2x',[cur]);
Result:=Result+t;
inc(i);
j:=(j+1) mod 7;
if j=0 then inc(i);

end;
end;
 
这个是字符串加密函数,好象是不可逆运算,不能写出解密函数
 
不是,这个是sms的英文编码码函数,应该可以解码的
它采用移位的方式进行编码。我知道具体怎么移,但是想不出怎么移回来
 
你不如将具体移位说出。看起来简明些,
关键是方法,而不是编程。
 
字符集为7位编码,
可以简单地理解为ASCII码(ASCII值小于80Hex,因此,Bit8被忽略),
依次将下一7位编码的后几位逐次移至前面,形成新的8位编码,
如移位计数已达7位,则直接将本编码前加0。GSM并非支持所有的ASCII字符显示。
 
顶部