Objetivos
Bits e bytes
A manipulação em baixo nível de bits e bytes é comum em aplicações como: editores hexadecimais,
assemblers, disassemblers, interpretadores, ferramentas de debug, emuladores e semelhantes.
Neste tópico, vamos aprender o básico sobre a manipulação de bits como: resetar bits, setar bits,
inverter bits, deslocar bits e outras. Isso será feito utilizando os operadores bitwise vistos em
Java Básico > Operadores > Bitwise.
Assim como em outras linguagens no estilo-C, em Java utilizamos o operador |(ou) para setar
determinados bits de uma variável em expressão. Esse operador pode ser usado como na sintaxe
a seguir:
Sintaxe:
nome_variavel | mascara_bits
Definimos uma máscara contendo os bits que desejamos setar e aplicamos o operador entre um
valor e essa máscara como mostrado no exemplo abaixo:
Exemplo 1
//Main.java
public class Main
{
public static void main(String[] args) {
byte variavel = 0x00;
byte resultado = (byte)(variavel | 0b00011000); //ou 0x18
System.out.println(String.format("%02X",resultado));
}
}
Saída
18
Para resetar bits também utilizamos uma máscara, mas dessa vez informa quais bits desejamos
manter. Porém, utilizamos o operador &(e) como pode ser visto abaixo:
Sintaxe:
nome_variavel & mascara_bits
Assim, ao aplicar o operador acima temos apenas os bits necessários resetados em suas posições:
Exemplo 2
//Main.java
public class Main
{
public static void main(String[] args) {
byte variavel = (byte)0xff; //ffh
byte resultado = (byte)(variavel & 0b11100111); //ou 0x18
System.out.println(String.format("%02X",resultado));
}
}
Saída
18
O teste de determinado bit ou conjunto de bits também é feito utilizando o operador & como
visto acima. Porém, como estamos lidando com testes, por exemplo, apenas verificamos o
o resultado.
Sintaxe:
(nome_variavel & mascara_bits) == valor
Exemplo 3
//Main.java
public class Main
{
public static void main(String[] args) {
byte variavel = (byte)0xff; //ffh
System.out.println((byte)(variavel & 0b00011000) == 0x18);
}
}
Saída
true
Para recuperar apenas os bits necessários, utilizamos o operador (>>). Aplicamos o operador &
entre o valor e uma máscara como acima e deslocamos uma quantidade de bits à direita para
obter os bits.
Sintaxe:
(nome_variavel & mascara_bits) >> qtd_bits
Exemplo 4:
//Main.java
public class Main
{
public static void main(String[] args) {
byte variavel = (byte)0xff; //ffh
byte resultado = (byte)(variavel & 0b00011000); //0x18
System.out.println(String.format("%02X",resultado));
byte bits = (byte)(resultado >> 3);
System.out.println(bits);
System.out.println(resultado == 0x3);
}
}
Saída
18
3
false
Histórico de atualizações
- 12/08/2026 - revisão 1 - Versão inicial: 'Setar', 'Resetar', 'Testar' e 'Recuperar'
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.