Operación de inversión de Java (~), explicada desde el nivel binario

~ Operación de negación

ejemplo:

Inversión de números positivos

150000 0000 0000 0000 0000 0000 0000 1111
取反运算(得到的是补码):1111 1111 1111 1111 1111 1111 1111 0000
转原码:
1111 1111 1111 1111 1111 1111 1111 0000
                                     -1
1111 1111 1111 1111 1111 1111 1110 1111                                     
取反得原码(符号位不变):1000 0000 0000 0000 0000 0000 0001 0000-16

Operación de inversión de números negativos (los números negativos se almacenan en forma de complemento en la computadora)

-151000 0000 0000 0000 0000 0000 0000 1111
转原码:
1000 0000 0000 0000 0000 0000 0000 1111
                                     -1
1000 0000 0000 0000 0000 0000 0000 1110
取反得原码(符号位不变):1111 1111 1111 1111 1111 1111 1111 0001    
取反运算:0000 0000 0000 0000 0000 0000 0000 111014

Por lo tanto, durante la operación de inversión del código original, el bit de signo permanece sin cambios. Esta vez la inversión no es una operación de inversión. La
operación de inversión se realiza directamente sobre el código original.

Un número positivo se invierte directamente primero y luego se convierte al código original para obtener el valor.
Los números negativos se convierten primero al código original y luego se realiza la inversión para obtener el valor.

Método simple
También puede utilizar un método de cálculo que sea adecuado para cálculos humanos:
si niega un bit a bit, el resultado es - (a + 1).
Este método de cálculo es aplicable tanto a números positivos como negativos y cero.

Referencia: https://www.cnblogs.com/shuaiding/p/11124974.html

¿Perdiste la escuela?

Supongo que te gusta

Origin blog.csdn.net/Brave_heart4pzj/article/details/114642199
Recomendado
Clasificación