← Back to team overview

ubuntukylin-members team mailing list archive

帮忙解释一下这段JS代码

 

for(var l=c.s,J=c.e,f=j[c.s]; c.s<c.e;) {
	for(; c.s<c.e&&j[c.e]>=f;)
		c.e--,r[0]=r[0]+3&255;
	c.s<c.e&&(j[c.s]=j[c.e],c.s++,r[1]=r[1]*13+43&255);
	for(; c.s<c.e&&j[c.s]<=f;)
		c.s++,r[2]=r[2]-3&255;
      	c.s<c.e&&(j[c.e]=j[c.s],c.e--,r[3]=(r[0]^r[1]^r[2]^r[3]+1)&255)
}
首先,这段代码是没有错误的,可以运行。
我正在试着将一段关于加密的JS代码翻译成C代码,这是其中一段。
其他的我大概还是可以看得懂的,这一段让我彻底无语了。
这里的缩进是我自己缩进的,可能不正确。

c.e--,r[0]=r[0]+3&255;这种是什么格式。
还有c.s<c.e&&(j[c.s]=j[c.e],c.s++,r[1]=r[1]*13+43&255);

下面说一下各个变量,c是一个结构体,里面有两个字段e和s,都是int
j是一个字符数组,其实就是C里的字符串,r是个长度为4的int数组




Follow ups