Что означает этот AS (код Action Script) - PullRequest
3 голосов
/ 28 февраля 2012

Я запутался с этим, так как я не являюсь экспертом по AS

while (var6 < (var5 - 1))  
{
 var8 = var3[(var6 + 1)];  
 var10 = (var7 >>> 5 ^ var8 << 2) + (var8 >>> 3 ^ var7 << 4) ^ (var13 ^ var8) + (var4[var6   & 3 ^ var11] ^ var7);  
 var var14:* = var3[var6] + var10;  
 var3[var6] = var3[var6] + var10;  
 var7 = var14;  
 var6 = var6 + 1;  
}  

Что я хочу точно знать, так это значение этих операторов:

  1. >>> и ^
  2. (var8 >>> 3 ^ var7 << 4)
  3. var11 = var13 >>> 2 & 3

Ответы [ 4 ]

5 голосов
/ 28 февраля 2012

Все они известны как побитовые операторы, то есть операторы, которые манипулируют целочисленными значениями посредством их двоичных представлений.Вы можете найти полную ссылку на операторы в ActionScript в документации Adobe .

>>> - это битовое беззнаковое смещение вправо ;он сдвигает биты вправо без сохранения знака значения.

^ - оператор побитовый XOR .Он принимает два операнда и выполняет операцию XOR над своими битами.

Выражение (var8 >>> 3 ^ var7 << 4) означает:

  1. var8 смещено в битах 3 раза вправо (делится на 2 ^ 3);

  2. результат побитовый XORed с var7;

  3. результат сдвинут бит 4 раза влево (умножаетсяна 2 ^ 4).

А выражение var11 = var13 >>> 2 & 3 означает:

  1. var13 сдвинуто бит 2 раза вправо (делится на 2 ^ 2);

  2. результат поразрядно И ed с 3;

  3. назначено var11.

0 голосов
/ 29 февраля 2012

Это часть реализации XXTEA .

XXTEA по определению работает с целыми числами без знака.Следовательно, реализация должна использовать беззнаковые операторы смещения вправо (т. Е. >>>, но не >>).Сдвиг влево (<<) не зависит от того, подписаны целые числа или нет. </p>

0 голосов
/ 29 февраля 2012

Выглядит декомпилированным для меня ... трудно представить кого-то, кто может точно сказать приоритет оператора & и ^, а с другой стороны, используя i = i + 1 / нетипизированные переменные ... Так как есть как 15 из переменных, кажется, что это алгоритм MD5 ... не знаю, почему вы его декомпилируете, если это так ...

Итак, вам также очень понадобится это, чтобы понять это: операторы предопределенность и ассоциативность

0 голосов
/ 28 февраля 2012

Это битовая математика http://www.moock.org/asdg/technotes/bitwise.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...