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.
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 & 1000 = 1000 = 8 System.out.println('x & y = ' + (x & y)); } }
Producción
x & 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.
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('x ^ y = ' + (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.
Utilicemos el operador OR bit a bit inclusivo en un programa Java.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (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
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('~x = ' + (~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 <> number of places to shift;
Por ejemplo, si a=10
a>>2; //shifts two bits a>>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:
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('x>>2 = ' + (x >>2)); } }
Producción
x>>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< Ejemplo 1: ¿Cuál será el resultado después de cambiar a<3. the value of a is 20.< strong> 3.> 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<2. the value of a is -10.< strong> 2.> La representación de -10 en binario es = 11110110 un<<2 11011000='<strong' =>-402> 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 Producción atrapar y probar java
escribe json en el archivo python
public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println('x<<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x<<1 24 = < pre> <h3>Unsigned Right Shift Operator (>>>)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>>>>.</strong> Note that the leftmost position after >> depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a>>>b?</strong> </p> <p>a >>> b = 11110000 >>> 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'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('x>>>2 = ' + (x >>>2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x>>>2 = 5 </pre> <hr></1></pre></1>
x>>>2 = 5
1>1>