Operadores de bits Circular

3 respostas
G

Alguem sabe qual é a instrução de bits em java.
Eu sei só essa:
>> << que movimenta da direita e esquerda.
mas o que eu gostaria é de um operador circular que substitui 1 por 0.
alguem sabe?
grato
estou desenvolvendo um sistema de criptografia.

3 Respostas

R

se eu entendi direito, o que vc quer deve ser o bitwise complement operator: ~

ele inverte os bits de um n° inteiro:

int a= 17; // 10001
a = ~2; // agora 01110

valeu,
té+

M

oq vc quer é o operador >>> :slight_smile:

H

Um shift circular nos moldes dos que existem no conjunto de instruções nativo da CPU pode ser obtido assim:

// circular shift right

int a = ...;
if&#40;&#40;a &amp; 1&#41; == 1&#41;
&#123;
  a &gt;&gt;&gt;= 1;
  a |= 0x80000000;
&#125;
else
&#123;
  a &gt;&gt;&gt;= 1;
&#125;

ou assado

// circular shift left

int a = ...;
if&#40;&#40;a &amp; 0x80000000&#41; != 0&#41;
&#123;
  a &lt;&lt;= 1;
  a |= 1;
&#125;
else
&#123;
  a &lt;&lt;= 1;
&#125;
Criado 3 de março de 2005
Ultima resposta 6 de mar. de 2005
Respostas 3
Participantes 4