2011-03-31 48 views
0
 for($reg3=0; $reg3<128; $reg3++) 
     { 
      $reg1[$reg3] = $reg1[$reg3]^($reg6[$reg3+256] & 1); 
     } 

我真不明白這到底是怎麼$reg1[$reg3]^($reg6[$reg3+256] & 1); 發生發生,這將是它的vb.net等效代碼。PHP - 不能明白什麼是在這行代碼

+0

回滾:OP詢問'vb.net'中的等價物是什麼,所以我認爲標籤有權在那裏。 – Jon 2011-03-31 18:02:21

回答

3

它在兩個操作數之間執行bitwise XOR,其中一個操作數是通過將bitwise AND應用於其他兩個操作數生成的。除此之外,它是標準的數組索引和附加。

如果表達式的類型支持這些運算符(我們不知道變量的值是什麼),VB.Net代碼將完全相同

+0

感謝您的快速回復。 – 2011-03-31 18:34:12

1

^&是二元/位運算符 - 更這裏:Bitwise Operators

^ - XOR(異或)
& - 而

我猜這是重新編譯代碼或混淆 - 如果不是,一些可怕的變量名稱。

切換爲更傳統的變量名:$reg3 - >$i$reg1 - >$a$reg6 - >$b我們得到:

for($i=0; $i<128; $i++) { 
    $a[$i] = $a[$i]^($b[$i+256] & 1); 
} 

它經過數組的第128個元素(或者字符串)$a 。對於每個元素,將它(^ ($b...)與最後一位(& 1)異或的數組(或字符串)$b與256進一步放在一起。 $a必須至少有128個元素,$b必須至少有384個元素。

1

&是一個按位運算符

^是一個按位運算符XOR運算符。