Red de conocimiento informático - Computadora portátil - ¿Qué significa A-gt;B & C?

¿Qué significa A-gt;B & C?

Cuando a es un puntero a una estructura, use a-gt; b;

Cuando a es una variable de estructura, use a.b

a-gt; a.b, a es una variable de estructura

amp; puede representar dos operadores en lenguaje C.

Si la operación tiene un solo objeto y es el operando correcto, entonces amp es el operando de recuperación de dirección y el resultado es la dirección del objeto de la operación. Por ejemplo, el resultado de amp;a (asumiendo que a es el valor del operando izquierdo, es decir, tiene una dirección accesible específica) es la dirección de a .

Si la operación tiene dos objetos, entonces amp representa la operación de suma bit a bit. Mediante la operación AND bit a bit, cada bit binario en el resultado es igual al bit binario en la posición correspondiente de los dos operandos. La regla de la operación AND bit a bit es que si y solo si los operandos son ambos 1, el resultado será 1, es decir, 1 amp 1 == 1, 1 amp 0 == 0 amp; 0 == 0.

Ejemplo:

char a, b

a=0xc5; /*a=10100101b;*/

b=0xdd ;/*b=11011101b;*/

c=aamp;b;/*c=10000101b*/

El resultado es c==0x85.(error l18230365, 11111101b es El resultado de bit a bit o a|b )

Operadores de bits en lenguaje C: AND, OR, XOR, inverso, desplazamiento a la izquierda y desplazamiento a la derecha

Las operaciones bit a bit se realizan en operación binaria. . En el software del sistema, a menudo es necesario lidiar con problemas de bits binarios. El lenguaje C proporciona operadores de manipulación de seis bits. Estos operadores solo se pueden utilizar con operandos enteros, es decir, tipos char, short, int y long con o sin signo.

Lista de operadores de operación de bits proporcionados por el lenguaje C:

Descripción del significado del operador

amp; entonces el resultado de la operación de bits es 1; de lo contrario, el resultado es 0

|Bit a bit o Siempre que uno de los dos bits binarios correspondientes sea 1, si el valor de los dos bits binarios que participan en la operación la operación no es 1 o 0, entonces el resultado del bit es 1

^Bit a bit o asíncrono o asíncrono o asíncrono o asíncrono o asíncrono o asíncrono o asíncrono o asíncrono o asíncrono o asíncrono o si los dos bits binarios involucrados en la operación Si los valores son iguales, el resultado es 0, de lo contrario es 1

~ Invertir ~ es un operador unario utilizado para invertir un número binario bit a bit, es decir, e ., cambiando 0 a 1 y 1 a 0

lt;lt; El desplazamiento a la izquierda se utiliza para mover todos los bits binarios de un número hacia la izquierda N bits y rellenar 0 hacia la derecha

gt;gt; El desplazamiento a la derecha se utiliza para desplazar El bit binario mueve N bits hacia la derecha, hacia el extremo inferior derecho del número, hacia el extremo inferior derecho del número. N bits, los bits bajos movidos al extremo derecho se descartan. Para números sin signo, los bits altos se rellenan con 0

1. El operador de "suma de bits" (amp;)

La suma de bits se refiere a: Los dos datos involucrados en la operación realizan la operación "Y" en función de los bits binarios. 1 aquí puede entenderse como lógicamente verdadero y 0 puede entenderse como lógicamente falso. El "Y" lógico del AND bit a bit es en realidad el "Y" lógico consistente con las reglas de operación.

El "igual" lógico requiere que el número de operaciones sea verdadero y el resultado sea verdadero. Como A = verdadero, B = verdadero, entonces A∩B = verdadero. Por ejemplo: 3amp el código binario de 5 3 es 11 (2). (Para distinguir el sistema decimal de otros sistemas, este artículo estipula que todos los datos no decimales están entre paréntesis, y los paréntesis indican el sistema, y ​​el binario está marcado como 2) La unidad básica para almacenar datos es el byte (Byte), y un byte consta de una composición de 8 bits (bit). Un bit es la unidad más pequeña utilizada para describir la cantidad de datos en una computadora. En el sistema binario, cada 0 o 1 es un bit. Sumar 11 (2) a un byte es 00000011 (2). La codificación binaria de 5 es 101 (2) y su complemento en un byte es 00000101 (2)

Operación de suma bit a bit:

00000011(2)

00000101(2)

00000001(2)

De este código 3amp;5=1

c:

#include lt ;stdio.hgt;

main()

{

int a=3;

int b = 5 ;

printf("d",aamp;b);

}

El propósito de la adición de bits:

(1) Borrar

Si desea borrar una ubicación de memoria, incluso si todos sus bits binarios son 0, simplemente busque un número binario en el que todos los bits cumplan las siguientes condiciones:

Bit 1 original en el número y bit 0 en el nuevo número. Luego realice la operación amp en estos dos números para lograr el propósito de borrar.

Ejemplo: el número original es 43, que es 00101011 (2). Encuentre un número y configúrelo en 148, que es 10010100 (2). Realice operaciones bit a bit en estos dos números:

00101011 (2)

amp; 10010100 (2)

00000000 (2)

código fuente en lenguaje c:

#include lt; stdio.hgt;

main()

{

int a=43

int b = 148;

printf("d",aamp;b);

}

(2) Toma ciertos bits específicos de un número

Si tiene un número entero a (2 bytes) y desea tomar su byte bajo, simplemente agregue un bit a bit a 8 unos.

a 00101100 10101100

b 00000000 11111111

c 00000000 10101100

(3) Reserva el bit especificado:

Cuando se realiza una operación "Y bit a bit" en un número, el número está en el bit de la operación y el número está en ese bit.

Por ejemplo, hay un número 84, es decir, 01010100 (2). Queremos conservar los dígitos 3.º, 4.º, 5.º, 7.º y 8.º en el lado izquierdo del número. es el siguiente:

01010100 (2)

amp; 00111011 (2)

00010000 (2)

i. : a=84, b=59

c=aamp;b=16

c código fuente:

#include lt;stdio.hgt;

main()

{

int a=84;

int b = 59;

printf(" d",aamp;b);

}

2, operador "bit OR" (|)

Siempre que uno de los dos bits binarios correspondientes es 1, el valor del bit de resultado es 1. Tomando prestada la lógica de la operación OR, se puede decir que una verdad es verdadera.

Por ejemplo, 60(8)|17(8), que es la operación OR bit a bit entre el octal 60 y el octal 17.

00110000

|00001111

001111

c Código fuente:

#include lt; ;

main()

{

int a=060;