Forum Pplware

Versão Completa: java Binary mask
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
É o seguinte,
tenho um valor lido do teclado não superior a 255(valor máximo de 8bits) , por exemplo o 158 e vou converte-lo para binário usando String bits = Integer.toBinaryString(val); , obtenho o resultado 10011110 .
A minha duvida está agora aqui. Queria fazer um AND bit a bit com uma mask ( 00001111 ou 0x0F ) para poder obter os 4bits de menor peso do valor lido (ou seja ficar com o resultado (1110)). E a partir deste poder converter para decimal.

Será que alguém me consegue explicar como é feito isto? já pesquisei varias coisas sobre masks e Bitwise mas nao consegui perceber como isso funciona
Estás a complicar o problema:

Código:
val & 0x0F
pois eu tambem tinha feito isso mas nao me ta a dar o resultado certo.

Edit:
ah ok... agora é que percebi o que tava a fazer mal.... e realmente a complicar bastante. o que eu tava a fazer era meter no parâmetro (val) os bits e nao o valor em si ( decimal ).

Obrigado pela ajudar
Testei agora e está a funcionar. Podes dizer qual o resultado que dá?
Se calhar não chegaste a reparar que editei a mensagem acima, mas já está a funcionar. Estava a meter bits em vez do valor decimal.
URL's de Referência