ColdFusion XOR в переводе с Java - PullRequest
       13

ColdFusion XOR в переводе с Java

0 голосов
/ 17 апреля 2011

У меня есть этот цикл в Java:

for (int i = 0; i < 16; i++) {
   data[i] ^= INIT_VECTOR[i];
}

при попытке перевести на холодный синтез:

<cfscript>
    for ( i = 1; i < 17; i++) {
      data[i] = data[i] XOR INIT_VECTOR[i];
    }
</cfscript>

выдает следующую ошибку:

You have attempted to dereference a scalar variable of type class [B as structure with members

скажите, пожалуйста, в чем была моя ошибка?

спасибо.

1 Ответ

3 голосов
/ 17 апреля 2011

Как комментирует QuantumMechanic, нужно посмотреть, как создаются два массива. Эту ошибку очень легко продублировать, просто объявив неправильные массивы, например <cfset data = "ArrayNew(1)" />, вместо правильного синтаксиса <cfset data = ArrayNew(1) />.

Кроме того, вместо использования оператора XOR вы можете использовать вместо него функцию BitXor. Когда я проверял это, XOR возвращал логическое значение CF да / нет, и вы, вероятно, просто хотите, чтобы бит возвращал BitXor.

<cfscript>
    for (i=1; i<17; i++) {
        data[i] = BitXor(data[i], INIT_VECTOR[i]);
    }
</cfscript>
...