Tem como fazer isso em JAVA?

4 respostas
R

Fala galera…

entao…achei uma funcaozinha em delphi (ARGH!!!) q usa os comandos XOR e SHR…

XOR é usado para comparaçoes, como and e or, mas apenas retorna verdadeiro entre as comparacoes um for verdadeiro e o outro falso, mas se os 2 forem falsos ou verdadeiros voltam falso.

SHR é a parecido, mas apenas volta verdadeiro quando o da direita for verdadeiro tambem

teria algo equivalente a isso no JAVA??

valew

4 Respostas

D

Uma operação XOR usa o operador ^:

if (b1 ^ b2) { ... }

XOR (eXclusive OR) o bloco entre chaves será executado apenas se um, e apenas um, dos operandos for verdadeiro.

Rafael_Steil

SHR eh o shift right ( >> ), e SHL o shift left ( << ).

Rafael

R

valew pela ajuda galera…

mas ainda fiquei meio confuso na conversao do codigo p/ java…

o q tenho:

Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;

sendo q InString, StartKey, MultKey e AddKey sao passadas por parametro…

com ficaria em java, mais ou menos?? :oops: :smiley: :oops: :smiley:

Elvis.The.Pelvis

No códigho acima, xor não está fazendo comparação booleana mas sim uma operação bit a bit.

Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8)); 
StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;
//Atencao: o char em java tem dois bytes. Tem que ver se é necessário
//vamos mudar startKey para int
result = result + (char)(inString.charAt(i) ^ (startKey >> 32)); 
startKey = (result.charAt(i) + startKey) * multKey + addKey;

No código delphi, StartKey shr 8 vai zerar o valor de StartKey. Porque então reatribuir algo a ela logo abaixo???

Criado 11 de fevereiro de 2003
Ultima resposta 11 de fev. de 2003
Respostas 4
Participantes 4