logo

Operador bit a bit en Java

En Java, un operador es un símbolo que realiza las operaciones especificadas. En esta sección, discutiremos sólo los operador bit a bit y sus tipos con ejemplos adecuados.

Tipos de operador bit a bit

Hay seis tipos de operadores bit a bit en Java:

  • Bit a bit Y
  • O exclusivo bit a bit
  • O inclusivo bit a bit
  • Elogio bit a bit
  • Operadores de desplazamiento de bits
Operadores Símbolo Usos
Bit a bit Y & op1 y op2
O exclusivo bit a bit ^ op1 ^ op2
O inclusivo bit a bit | op1 | op2
Elogio bit a bit ~ ~ operación
Desplazamiento bit a izquierda << op1 << op2
Desplazamiento bit a derecha >> op1 >> op2
Operador de desplazamiento a la derecha sin firmar >>> en >>> número de lugares para cambiar

Expliquemos el operador bit a bit en detalle.

Bit a bit Y (&)

Es un operador binario denotado por el símbolo & . Devuelve 1 si y sólo si ambos bits son 1; en caso contrario, devuelve 0.

Operador bit a bit en Java

Usemos el operador AND bit a bit en un programa Java.

puntero en c

BitwiseAndExample.java

 public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 &amp; 1000 = 1000 = 8 System.out.println(&apos;x &amp; y = &apos; + (x &amp; y)); } } 

Producción

 x &amp; y = 8 

O exclusivo bit a bit (^)

Es un operador binario denotado por el símbolo ^ (pronunciado como intercalación). Devuelve 0 si ambos bits son iguales; en caso contrario, devuelve 1.

Operador bit a bit en Java

Utilicemos el operador OR exclusivo bit a bit en un programa Java.

BitwiseXorExample.java

 public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println(&apos;x ^ y = &apos; + (x ^ y)); } } 

Producción

 x ^ y = 1 

Bit a bit inclusivo O (|)

Es un operador binario denotado por el símbolo | (pronunciado como pipa). Devuelve 1 si alguno de los bits es 1; en caso contrario, devuelve 0.

Operador bit a bit en Java

Utilicemos el operador OR bit a bit inclusivo en un programa Java.

BitwiseInclusiveOrExample.java

 public class BitwiseInclusiveOrExample { public static void main(String[] args) y = &apos; + (x } 

Producción

 x | y = 9 

Complemento bit a bit (~)

Es un operador unario denotado por el símbolo ~ (pronunciado como tilde). Devuelve el inverso o complemento del bit. Hace que cada 0 sea un 1 y cada 1 un 0.

emitir un comando
Operador bit a bit en Java

Usemos el operador complemento bit a bit en un programa Java.

BitwiseComplimentExample.java

 public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println(&apos;~x = &apos; + (~x)); } } 

Producción

 ~x = -3 

Operadores de desplazamiento de bits

El operador de desplazamiento se utiliza para desplazar los bits hacia la derecha o hacia la izquierda. Podemos utilizar operadores de desplazamiento si dividimos o multiplicamos cualquier número por 2. El formato general para desplazar el bit es el siguiente:

 variable &lt;&gt; number of places to shift; 

Por ejemplo, si a=10

 a&gt;&gt;2; //shifts two bits a&gt;&gt;4; //shifts 4 bits 

Java proporciona los siguientes tipos de operadores de turnos:

  • Operador de desplazamiento a la derecha firmado u operador de desplazamiento a la derecha bit a bit
  • Operador de desplazamiento a la derecha sin firmar
  • Operador de desplazamiento a la izquierda firmado u operador de desplazamiento a la izquierda bit a bit

Nota: Java no admite el operador de desplazamiento a la izquierda sin firmar (<<<).< h4>

Operador de desplazamiento a la derecha firmado (>>)

El operador de desplazamiento a la derecha con signo desplaza un patrón de bits de un número hacia la bien con un número específico de posiciones y llena 0. El operador se indica con el símbolo >>. También conserva el bit más a la izquierda (bit de signo). Si 0 se presenta en el bit más a la izquierda, significa que el número es positivo . Si 1 se presenta en el bit más a la izquierda, significa que el número es negativo .

En general, si escribimos a>>n, significa desplazar los bits de un número hacia la derecha con una posición específica (n). En términos matemáticos, podemos representar el operador de desplazamiento a la derecha con signo de la siguiente manera:

Operador bit a bit en Java

Nota: Cuando aplicamos el operador de desplazamiento a la derecha en un número positivo, también obtenemos el número positivo en el resultado. De manera similar, cuando aplicamos el operador de desplazamiento a la derecha en un número negativo, también obtenemos el número negativo en el resultado.

Ejemplo: aplique el operador de desplazamiento a la derecha con signo con las posiciones especificadas 4 si x = 256 y x = -256.

Si x = 256

256 >> 4

256/24= 16

Si x = -256

-256 >> 4

-256/24= -16

En el ejemplo anterior, hemos observado que después de cambiar el operador 256 se convirtió en 16 y -256 se convirtió en -16.

Creemos un programa Java e implementemos el operador de desplazamiento a la izquierda.

SignedRightShiftOperatorExample.java

 public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println(&apos;x&gt;&gt;2 = &apos; + (x &gt;&gt;2)); } } 

Producción

 x&gt;&gt;2 = 12 

Operador de desplazamiento a la izquierda firmado (<<)< strong>

El operador de desplazamiento a la izquierda firmado (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>También conserva el bit más a la izquierda (bit de signo). No conserva el bit de signo.

En general, si escribimos un< Operador bit a bit en Java

Ejemplo 1: ¿Cuál será el resultado después de cambiar a

atrapar y probar java

La representación de 20 en binario es = 00010100

Después de realizar el operador de desplazamiento a la izquierda, obtenemos:

a << 3 = 10100000 (los últimos tres bits son los bits llenos)

un << 3 = 160

Comprobemos el resultado usando la fórmula.

20 << 3

20*23= 20*8 = 160

Ejemplo 2: ¿Cuál será el resultado después de cambiar a

La representación de -10 en binario es = 11110110

un<<2 11011000='<strong' =>-40

Comprobemos el resultado usando la fórmula.

-10 << 3

-10*22= -10*4 = -40

Creemos un programa Java e implementemos el operador de desplazamiento a la izquierda con signo.

SignedLeftShiftOperatorExample.java

escribe json en el archivo python
 public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println(&apos;x&lt;<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x&lt;<1 24 = < pre> <h3>Unsigned Right Shift Operator (&gt;&gt;&gt;)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>&gt;&gt;&gt;.</strong> Note that the leftmost position after &gt;&gt; depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a&gt;&gt;&gt;b?</strong> </p> <p>a &gt;&gt;&gt; b = 11110000 &gt;&gt;&gt; 2 = <strong>00111100</strong> </p> <p>The left operand value is moved right by the number of bits specified by the right operand and the shifted bits are filled up with zeros. Excess bits shifted off to the right are discarded.</p> <p>Therefore, before shifting the bits the decimal value of a is 240, and after shifting the bits the decimal value of a is 60.</p> <p>Let&apos;s create a Java program and use the unsigned right shift operator.</p> <p> <strong>UnsignedRightShiftOperatorExample.java</strong> </p> <pre> public class UnsignedRightShiftOperatorExample { public static void main(String args[]) { int x = 20; System.out.println(&apos;x&gt;&gt;&gt;2 = &apos; + (x &gt;&gt;&gt;2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x&gt;&gt;&gt;2 = 5 </pre> <hr></1></pre></1>

Producción

 x&gt;&gt;&gt;2 = 5