Suplemento básico: además de la diferencia entre & y &&, también necesita conocer estos 5 operadores de operaciones bit a bit

01 Prefacio

Cuando estaba buscando un trabajo ese año, encontré un problema tan simple 1. Todos son operadores de AND lógico. 2. && tiene una función de cortocircuito, si el primero es falso, no hay necesidad de calcular el verdadero o falso del segundo. Más tarde, vi a alguien haciendo preguntas similares en el grupo WeChat, lo que provocó mi pensamiento.

02 La diferencia entre & y &&

El mismo punto  & y && se puede usar como operador lógico Y, lo que significa lógico y (y). Cuando el resultado de la expresión en ambos lados del operador es verdadero, el resultado es verdadero; de lo contrario, siempre que uno de ellos sea falso, entonces El resultado es falso. (Sal: & tiene sentido cuando se utiliza lógico y, y en sí no es para esto)  Diferencia

if (loginUser! = null && string.IsnullOrEmpty (loginUser.UserName))
  • && tiene una función de cortocircuito, es decir, si la primera expresión es falsa, la segunda expresión no se calculará. Para la expresión anterior, cuando loginUser es nulo, la siguiente expresión no se ejecutará, por lo que no aparecerá NullPointerException Si cambia && a &, se lanzará una NullPointerException. (Ps: Entonces, cuando quieres usar lógico y & no tiene sentido)
  • & Se utiliza para operaciones con bits.

para resumir

  • & Es una operación de bits, el resultado devuelto es de tipo int
  • && es una operación lógica, el resultado devuelto es de tipo bool, ¿qué estás haciendo? 

Lector signo de interrogación negro: he estado trabajando durante tres años, y solo diga esto. ¿No es esto un desperdicio de los datos que hago clic para leer?


4183a91844c70b302494ed06e2ff0738.jpeg


03 Uso de operaciones de bits

Vaya directamente al tema de las operaciones con bits . Este artículo en sí no tiene ninguna dificultad. Ni siquiera es posible utilizar operaciones con bits en su trabajo. Este es un presagio: antes de dominar las operaciones con bits, debe aclarar los dos conceptos de operaciones con bits.

  • P1: ¿Qué tipo de tipos de datos pueden realizar operaciones de bits? El objeto de la operación de bits es tipo int y char. El argumento de estilo jardín de infancia es realizar operaciones en el binario 1101 (13)
  • P2: ¿Cuál es el resultado de la computación en la nube? El resultado es un entero

Operadores comunes de 5 bits

3.1 Lógica de bits Y operación: &

La  operación AND consiste en realizar la operación AND de los dos operandos según la ubicación. Las reglas son:

1 y 1 = 10 y 1 = 00 y 0 = 0

Como se muestra:

57a352c79b046a910a1fc75a30750f38.jpeg

El valor binario de 15 es (ps: int de 16 bits, int de 32 bits, 16 ceros más desperdician tráfico)

0000 0000 0000 1111 
 `` El binario de 20 es `` `csharp 
    0000 0000 0001 0100

El resultado de 15 y 20 es 4

0000 0000 0000 11110000 0000 0001 010015 & 20 Resultado: 
 0000 0000 0000 0100

3.2 Operación OR lógica de bits: |

| La  operación OR lógica de bits consiste en realizar operaciones OR bit a bit de dos operandos. Las reglas de operación son

1 | 1 = 1 
    1 | 0 = 1 
    0 | 0 = 0 Si 
    hay un 1 en la comparación de dos dígitos, es 1

Por ejemplo, el resultado de 15 | 20 es 31

d13ca21eb5f839367ef58143d25d2780.jpeg


0000 0000 0000 11110000 0000 0001 010015 | 20 resultado 0000 0000 0001 1111

3.3 Operación OR exclusiva de lógica de bits: ^


7d3f7bd9a0127fc8c42f8e14f79ad6fd.jpeg

^ La  operación XOR de lógica de bits es realizar la operación XOR en dos operandos bit a bit. Las reglas son:

1 XOR 1 es igual a 0 
1 XOR 0 es igual a 1 
0 XOR 0 es igual a 0

Es decir: lo mismo obtiene 0, la diferencia obtiene 1. 15 ^ 20 = 27 (0001 1011)

0000 1111 (15) 
 0001 0100 (20) 
 15 ^ 20 El resultado de la operación 
 0001 1011 (27)

3.4 Operación de desplazamiento a la izquierda de la lógica de bits <<


f13c032fa39e042627d45b40f4a95269.jpeg

<< La  operación de desplazamiento a la izquierda de lógica de bit es mover el bit varios bits a la izquierda y la parte vacante después del desplazamiento a la izquierda es 0.

Por ejemplo, el binario 0000 1111 de 15 se desplaza a la izquierda 8 bits es 1111 0000 0000

0000 0000 0000 111115 >> El resultado de desplazarse a la izquierda en 8 bits: 0000 1111 0000 000015 << 8 = 3840

Desplazar 3 bits a la izquierda (15 << 3) es 0111 1000 y el resultado es 120 a << 1 = 2 a << 2 = 4 a << 3 = 8

Conclusión  Un desplazamiento a la izquierda en n bits equivale a multiplicar por 2 elevado a n

Operación de desplazamiento a la derecha de lógica de 3,5 bits >>


d8c95da4bfeaca58d8abdf3cca6b3a4e.jpeg

La operación de desplazamiento a la derecha de la lógica de bit es mover el bit varios bits a la derecha, y la parte izquierda después del desplazamiento a la derecha es 0. Por ejemplo, 0000 1111 (15) se desplaza a la izquierda 3 bits (15 << 3) es 0000 0001 (1)

0000 1111 (15) desplazado a la izquierda en 3 bits, el resultado es: 0000 0001 (3)

Desplazarse hacia la derecha equivale a dividir, desplazarse hacia la derecha por 1 bit equivale a dividir entre 2 elevado a 1 y desplazarse hacia la derecha por 2 equivale a dividir por 2 elevado a 2. (Ps: esta división es una división de computadoras, ya sabes)

04 ¿Qué más pueden hacer las operaciones de bits?

En realidad, hay bastantes operaciones de Sao para operaciones bit a bit, y no hay suficiente espacio, por lo que dejaré el siguiente artículo para escribir. P.ej:

  • Por ejemplo, guarde el registro de inicio de sesión de un mes en 1 tipo int
  • Determina el número par y el impar
  • Configuración de permisos, 4 operaciones de agregar, eliminar, modificar y verificar, combinadas en un entero
  • Intercambia dos números
  • La forma más eficiente de calcular la tercera potencia de 2 es desplazarse a la izquierda mediante la operación de bits <<
  • Calcule a elevado a b
  • Un conjunto de datos enteros, averigüe el número que no se repite

Un resumen de algunos otros conceptos de conocimientos básicos:  la relación entre bits, bytes, caracteres (letras en inglés), caracteres chinos, KB, MB, GB, TB

  • Bit: bit, también llamado bit, es la unidad de datos más pequeña que representa una computadora y se almacena con 0 y 1 binarios.
  • Byte: byte, 1byte (1B) = 8b, un byte = 8 bits
  • Caracteres: char, 1char = 2byte = 16b, 1 carácter = 2 bytes = 16 bits
  • KB , 1KB = 1024byte (1024B)
  • MB, 1 MB = 1014 KB
  • GB, 1 GB = 1024 MB
  • TB, 1 TB = 1024 GB
  • Un carácter chino ocupa dos bytes, que son 32 bits. Un artículo de 1000 palabras tiene aproximadamente 32 * 1000 0 o 1 binario.
  • Un video corto de 10M, es decir, 10M = 1024KB 10 = 1024 bytes 10 10 = 1024b 10 10 8 es aproximadamente 919200 0 y 1 binarios
  • Short es de 16 bits, int es de 32 bits, long es de 64 bits KB, 1KB = 1024byte (1024B) ¿Se pueden combinar y convertir short, int y long? Algunos otros enlaces a operaciones reales, mira el pasado, la escritura es desordenada, ¡perdóname!
  • C # bit aritmético uso escena operación entero un cierto bit
  • Aplicación práctica de operación de bits C #


Supongo que te gusta

Origin blog.51cto.com/15002954/2550632
Recomendado
Clasificación