我有一个计算ROT13的函数。
string function rot13(required string inString) output="false" {
var j = 0;
var k = 0;
var out = "";
for (var i = 1; i <= Len(arguments.inString); i++){
j = asc(Mid(arguments.inString, i, 1));
if(j >= asc("A") && j <= asc("Z")) {
j = ((j - 52) % 26) + asc("A");
}
else if(j >= asc("a") && j <= asc("z")) {
j = ((j - 84) % 26) + asc("a");
}
out &= Chr(j);
} // end for
return out;
}
我不喜欢它看起来有3个神奇的数字52、26和84。我认为26可以用asc("Z") - asc("A") + 1
代替
但我不知道52和84代表什么。我不知道该给它们取什么名字。
通过查看幻数和ASCII表,我得出了这个结果。
26是字母表中的字母数。这是你的第一个神奇数字。
CCD_ 2为65。65减去13等于52,这是你的第二个神奇数字。
CCD_ 3为97。97减13等于84,这是你的第三个神奇数字。
这就是数字所代表的。您可以决定如何命名变量。或者,您可以将解释添加为注释。
编辑从这里开始
13是您正在旋转的字符数。这也是一个神奇的数字。你可以通过将其作为一个参数来增强你的函数,这样你也可以按其他数字旋转。