¿Qué es el operador bit a bit en Java? y su clasificación (con ejemplos)

Publicado: 2021-05-20

Java es uno de los lenguajes de programación más predominantes en la India y domina alrededor del 20 por ciento de la cuota de mercado . Un operador bit a bit en Java es un símbolo/notación que realiza una operación específica en bits independientes, tomados uno a la vez. Se usa para manipular bits individuales de un número binario y se puede usar con una variedad de tipos de enteros: char, int, long, short, byte.

Un operador bit a bit en Java se puede clasificar en términos generales en 7 tipos:

Operador bit a bit en Java Símbolo Descripción
Y bit a bit | Conserva un bit en el resultado si y solo si existe en ambos operandos.
O bit a bit & Conserva un bit si existe en cualquiera de los dos operandos.
XOR bit a bit ^ Conserva un bit si está presente solo en un operando pero no en ambos.
COMPLEMENTO bit a bit ~ También conocido como complemento a 1. Simplemente invierta los bits del operando.
MAYÚS IZQUIERDA bit a bit << Los bits del operando izquierdo se desplazan hacia la izquierda el número de lugares especificado en el operando derecho.
TURNO A LA DERECHA FIRMADO >> Los bits del operando izquierdo se desplazan hacia la derecha el número de lugares especificado en el operando derecho.
DESPLAZAMIENTO A LA DERECHA SIN FIRMA >>> Exactamente como el MAYÚSCULO A LA DERECHA FIRMADO más los bits desplazados se rellenan con cero.

Exploremos ahora en detalle cada operador bit a bit en Java:

Tabla de contenido

1. O (A | B)

Mesa de la verdad

A B Producción
0 0 0
0 1 1
1 0 1
1 1 1

Ejemplo

A = 1011 1110

B = 0011 0101

un | B = 1011 1111

Sintaxis

clase principal {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, salida;

// bit a bit O entre 190 y 53

salida = operando1 | operando2;

System.out.println(salida); // programa imprime 191

}

}

2. Y (A y B)

Mesa de la verdad

A B Producción
0 0 0
0 1 0
1 0 0
1 1 1

Ejemplo

A = 1011 1110

B = 0011 0101

A y B = 0011 0100

Sintaxis

clase principal {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, salida;

// bit a bit O entre 190 y 53

salida = operando1 | operando2;

System.out.println(salida); // programa imprime 52

}

}

  1. INCLUSIVO O/XOR (A^B)

Mesa de la verdad

A B Producción
0 0 0
0 1 1
1 0 1
1 1 0

Ejemplo

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

Sintaxis

clase principal {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, salida;

// bit a bit O entre 190 y 53

salida = operando1 | operando2;

System.out.println(salida); // programa imprime 131

}

}

3. COMPLEMENTO (A ~ B)

En términos decimales, el complemento bit a bit de un número A es – (A+1). Sin embargo, en el dominio binario, primero debemos calcular su complemento a 1 y luego convertirlo en su complemento a 2 para obtener el resultado deseado.

Complemento a 1: simplemente invierta los bits. Por ejemplo:

A = 1011 1110 (190)

Complemento a 1 de A = 0100 0001

Complemento a 2 de A = Complemento a 1 de A + 1 = 0100 0010

Sintaxis

clase principal {

public static void main(String[] args) {

operando int4 = 190, salida;

// complemento bit a bit de 190

salida = ~operando4;

System.out.println(salida); // imprime -191

}

}

  1. MAYÚS IZQUIERDA (A << 1)

Supongamos que A = 1011 1110

A << 1 = ?

Este operador bit a bit en Java hace que todos los bits se desplacen a la izquierda en 1, es decir, la salida es 0111 1100. El bit más a la izquierda (bit más significativo o MSB) se descarta y se agrega un 0 al lugar vacío más a la derecha ( bit menos significativo o LSB). Esto se hace para cada lugar vacante a la derecha.

Sintaxis

clase principal {

public static void main(String[] args) {

operando int = 3; // binario – 11

// Operación de desplazamiento a la izquierda de 1 bit

int salida= operando << 1;

System.out.println(salida); // imprime 2

}

}

4. TURNO A LA DERECHA FIRMADO (A >>2)

Este operador bit a bit en Java desplaza el patrón de bits a la derecha el número de lugares especificado. Los LSB se descartan y los MSB se rellenan con el bit de signo. 0 representa un signo positivo, mientras que 1 representa un signo negativo.

Sintaxis

clase principal {

public static void main(String[] args) {

operando int 1 = 2;

operando int2 = -2;

// Desplazamiento a la derecha con signo de 2 bits

System.out.println(operando1 >> 2); // imprime 1

System.out.println(operando2 >> 2); // imprime -1

}

}

5. DESPLAZAMIENTO A LA DERECHA SIN FIRMA (A >>>2)

La operación aquí es exactamente similar a SHIFT RIGHT SHIFT excepto que los bits vacíos más a la izquierda se reemplazan con 0 en lugar de los bits de signo.

Sintaxis

clase principal {

public static void main(String[] args) {

operando int = 240; // numero binario – 1111 0000

// Desplazamiento a la derecha sin signo de 2 bits

System.out.println(operando >>> 2); // imprime 60

}

}

Aprenda cursos de ingeniería de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

¿Desea dominar Java y hacer una carrera profesional? Echa un vistazo a la pista de software y tecnología de upGrad . Inscríbase en el programa Executive PG de 13 meses en Full-Stack Development y ensucie sus manos con proyectos del mundo real. Afiliado al reputado IIIT Bangalore, tiene la oportunidad de aprender 16 lenguajes y herramientas de programación, y 3 entrevistas de trabajo garantizadas.

¿Qué son los operadores bit a bit?

Un operador bit a bit opera en cada bit de los operandos y devuelve un resultado en forma de 1 y 0. La mayoría de los operadores bit a bit se usan para hacer varias máscaras, que se pueden usar para hacer campos de bits, cambiar el tamaño de un tipo de datos y alinear un tipo de datos. Los operadores bit a bit se utilizan para realizar operaciones bit a bit en un número binario. Se utiliza para ser más eficiente en operaciones a nivel de bit. No podemos usar el operador bit a bit en variables de tipos de datos no enteros.

¿Cuáles son los tipos de operadores bit a bit en Java?

En lenguaje Java, además de los operadores aritméticos, también se utilizan operadores bit a bit. Aunque solo hay unos pocos operadores bit a bit, pueden ser extremadamente útiles. En Java hay seis operadores. Son: AND bit a bit, OR bit a bit, XOR bit a bit, Desplazamiento a la izquierda bit a bit, Desplazamiento a la derecha bit a bit y Complemento a unos. Estos operadores se pueden aplicar a los tipos enteros byte, short, int, long y char.

¿Cuáles son las características del lenguaje de programación Java?

Java es un lenguaje de programación orientado a objetos de propósito general. Las aplicaciones de Java generalmente se compilan en un código de bytes, que luego se ejecuta en la máquina virtual de Java. Java está diseñado para ejecutarse en una variedad de plataformas. También está diseñado para ser utilizado en un entorno informático distribuido. Un programa escrito en el lenguaje de programación Java se denomina Aplicación Java o Entorno de aplicación Java. El lenguaje de programación Java es un lenguaje poderoso y flexible. Las aplicaciones Java suelen ser más grandes y complejas que la aplicación web promedio. El lenguaje de programación Java es un lenguaje de propósito general. Se puede utilizar para crear aplicaciones para cualquier propósito. Funciones como subprocesos múltiples, redes, seguridad y persistencia hacen que Java sea adecuado para una amplia variedad de usos.