for($reg3=0; $reg3<128; $reg3++)
{
$reg1[$reg3] = $reg1[$reg3] ^ ($reg6[$reg3+256] & 1);
}
我真的不明白这里发生了什么$reg1[$reg3] ^ ($reg6[$reg3+256] & 1);
什么是vb.net等效代码。
答案 0 :(得分:3)
它在两个操作数之间执行bitwise XOR,其中一个操作数是通过将bitwise AND应用于另外两个操作数而生成的。除此之外,它是标准的数组索引和添加。
如果表达式的类型支持这些运算符,VB.Net代码将完全相同(我们不知道变量的值是什么)。
答案 1 :(得分:1)
^
和&
是二进制/按位运算符 - 更多信息:Bitwise Operators
^
- Xor(独家或)
&
- 和
我猜这是重新编译的代码或混淆 - 如果不是,那些可怕的变量名称。
切换更传统的变量名称:$reg3
- &gt; $i
,$reg1
- &gt; $a
,$reg6
- &gt; {{1}我们得到:
$b
它遍历数组的前128个元素(或者字符串)for($i=0; $i<128; $i++) {
$a[$i] = $a[$i] ^ ($b[$i+256] & 1);
}
。对于每个元素,将它($a
)与数组(或字符串)^ ($b...
中的元素的最后一位(& 1
)进行异或(其中256位)。 $b
必须至少为128个元素,$a
必须至少为384个元素。
答案 2 :(得分:1)
&安培;是一个按位 AND 运算符。
^是按位 XOR 运算符。