Conceptos básicos de Java: operadores bit a bit

El artículo anterior cubrió los operadores de turno, y este artículo cubre los operadores bit a bit.

descripción general

Los operadores bit a bit funcionan en los bits de un número binario o valor de entrada, y podemos aplicarlos a tipos de enteros: largo, int, corto, char y byte.

proceso de cálculo:

  • Primero, los operandos se convierten a su representación binaria
  • Luego, aplique el operador a cada número binario y calcule el resultado
  • Finalmente, convierta el resultado de nuevo a su representación decimal.

Java proporciona los siguientes operadores bit a bit: los operadores bit a bit se usan en valores enteros y &|^ actúa como un operador condicional cuando se usa con valores booleanos.

operador símbolo explicar
& x e y Si x e y son tipos enteros, se realiza una operación AND bit a bit.
| × | y Si x e y son tipos enteros, se realiza una operación OR bit a bit.
^ x^y Si x e y son tipos enteros, se realiza una operación or exclusiva bit a bit.
~ ~ x Si x es un tipo entero, realiza una operación NOT bit a bit (invierte cada bit).

& representa la operación AND en el operador bit a bit, y la operación AND (producto lógico) es un método de operación que devuelve 1 cuando los dos bits a operar son ambos 1.

El operador & compara cada dígito binario de dos enteros y devuelve 1 si ambos son 1 y 0 en caso contrario.

Esto es similar al operador && con valores booleanos, el resultado de la operación && es verdadero cuando ambos valores booleanos son verdaderos.

X y resultado
0 0 0
0 1 0
1 0 0
1 1 1

1000 binario (8 decimal) Y 1010 binario (10 decimal) Y es 1000 binario (8 decimal).

demostración de código:

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/6 18:12
 * @description:
 */
public class Eleven {

    public static void main(String[] args) {

        int x = 8;
        int y = 10;

        System.out.println("x & y的值为" + (x & y));
    }
}

Resultados de la:

|

|Indica la operación OR en la operación de bit, y la operación OR (suma lógica) es un método de operación que devuelve 1 cuando uno de los bits a operar es 1.

El operador | compara cada dígito binario de dos enteros y devuelve 1 si uno de ellos es 1.

Esto es similar al operador lógico || que se usa con valores booleanos, al comparar dos valores booleanos, si uno de ellos es verdadero, el resultado es verdadero, así mismo, cuando uno de ellos es 1, la salida es 1.

X y resultado
0 0 0
0 1 1
1 0 1
1 1 1

La operación OR de 1000 binario (8 decimal) con 1010 binario (10 decimal) es 1010 binario (10 decimal).

demostración de código:

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/6 18:14
 * @description:
 */
public class Twelve {

    public static void main(String[] args) {

        int x = 8;
        int y = 10;

        System.out.println("x | y的值为" + (x | y));
    }
}

Resultados de la:

^

^Indica la operación XOR en la operación de bits La operación XOR (XOR) es un método de operación que devuelve 1 cuando los bits a operar son diferentes.

El operador XOR compara cada dígito binario de dos enteros y devuelve 1 si los dos bits comparados son diferentes. Esto significa que si los bits de ambos enteros son 1 o 0, el resultado será 0; de lo contrario, el resultado será 1.

X y resultado
0 0 0
0 1 1
1 0 1
1 1 0

El 1000 binario (8 decimal) se somete a XOR con el 1010 binario (10 decimal) para obtener el 0010 binario (2 decimal).

demostración de código:

package com.test.javaroads.operator;

/**
 * @author: wangrui
 * @date: 2022/12/6 18:16
 * @description:
 */
public class Thirteen {

    public static void main(String[] args) {

        int x = 8;
        int y = 10;

        System.out.println("x ^ y的值为" + (x ^ y));
    }
}

Resultados de la:

~

~ representa la operación NOT en la operación de bit, y la operación NOT es un método de operación que invierte cada bit en la operación.

El operador ~ cambia cada bit binario de un entero, lo que significa que todos los 0 se convierten en 1 y todos los 1 se convierten en 0. El operador funciona de manera similar para los valores booleanos: invierte un valor booleano de verdadero a falso y viceversa.

El NOT de 00001000 en binario (8 en decimal) es 11110111 (-9 en decimal).

demostración de código:

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/6 18:16
 * @description:
 */
public class Thirteen {

    public static void main(String[] args) {

        int x = 8;

        System.out.println("~x的值为" + (~x));
    }
}

Resultados de la:

Supongo que te gusta

Origin blog.csdn.net/weixin_43025343/article/details/132236333
Recomendado
Clasificación