阅读:1189回复:0
关于《天书夜读》第一节结尾部分
第三步,自然是表达式的合并与控制流程的结合了,前面D系列的表达式,把中间过程除去,已经很容易得到表达式如下,其中eax开始为0,ecx开始为p3.
ecx [0] = p2[2]*p1[eax*2+1]+p2[0]*p1[eax*2]; ecx [1] = p2[3]*p1[eax*2+1]+p2[1]*p1[eax*2]; 此外jl明显导致了一个循环,每次循环的更改是: eax++; ecx+=8; eax是循环变量。ecx显然用于取数组位置,且二者保持固定的同步增加,可以用一个循环变量替代之,所以翻译结果如下: for(i=0;i<2;i++) { p3[i ] = p2[2]*p1[2*i+1]+p2[0]*p1[2*i]; p3[i+1] = p2[3]*p1[2*i+1]+p2[1]*p1[i*2]; } 哪位大佬帮忙解释一下?我个人觉得应该是 for(i=0;i<2;i++) { p3[2*i] = p2[2]*p1[2*i+1]+p2[0]*p1[2*i]; p3[2*i+1] = p2[3]*p1[2*i+1]+p2[1]*p1[i*2]; } |
|