Red de conocimiento informático - Aprendizaje de programación - Operación de desplazamiento a la derecha en Java

Operación de desplazamiento a la derecha en Java

Mover los dígitos binarios de un número hacia la derecha una cantidad de bits, donde los dígitos positivos se mueven hacia la izquierda por 0, los dígitos negativos se mueven hacia la izquierda por 1 y los dígitos de la derecha son descartados.

Mover el operando una posición hacia la derecha equivale a dividir el número entre 2.

Nota: El número original, el número inverso y el complemento de un número positivo son los mismos; el número inverso de un número negativo se invierte excepto el bit de signo se invierte excepto; el bit de signo y se añade 1 al final del complemento. (El bit más a la izquierda en binario es el bit de signo).

Operador de desplazamiento a la derecha con signo (gt; gt;)

Operador de desplazamiento a la derecha (gt; gt;)

Mover cada dígito binario de un número a la derecha con un cierto número de bits. Los números positivos se rellenan con 0 a la izquierda, los números negativos se rellenan con 1 a la izquierda y el lado derecho se descarta.

El operador de desplazamiento a la derecha sin signo (gt; gt; gt;)

El operador gt; gt; desplaza cada bit de la expresión 1 a la derecha de la expresión 2 El número especificado de dígitos. Después de cambiar, el espacio vacío que queda se llenará con ceros. Los bits desplazados hacia la derecha se descartarán

-1gt;gt;2 = -1 ?

-1: ?Código original: complemento a uno: 1111 11101111 1110 ?Complemento: 1111 1111

Mueve 2 bits hacia la derecha: 1111 1111 (¿realizas la operación de complemento y completas el bit izquierdo con 1?)

Luego encuentras el código inverso: 1000 0000 (dividido por bit izquierdo Bit de signo, el resto están invertidos)

Luego encuentre el valor original: 1000 0001 = -1? (Aún sumando 1 al final de la cuenta regresiva)

-5gt;gt;2=-2

-5:? Código original: 1000 0101 ? Código inverso: 1111 1010 ? Código complemento: 1111 1011

Mover 2 bits a la derecha: 1111 1110 (use la operación en complemento a dos y complete el bit izquierdo con 1)

Encuentre el código inverso nuevamente: 1000 0001 (elimine el bit de signo de la izquierda e invierta los bits restantes)

Encuentre el código original nuevamente: 1000 0010 = -2 (aún agregue en el ? final del código inverso 1)

-5gt;gt;gt;2=1073741822

-5:

Mover 2 bits a la derecha: 0011 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 11 1111 1111 1111 11 11 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 = 1073741822