traduccion operadores leviton bitwise php operators bit-manipulation tilde

php - leviton - operadores bit a bit



¿Cuál es la función del operador ~ bitwise(Tilde) (3)

Posible duplicado:
¿Qué significa este operador ~ aquí?
Bit no funciona en PHP (o cualquier otro idioma probablemente)

¿Puede alguien explicarme el operador ~ en PHP? Sé que no es un NOT-operator , pero ¿por qué PHP convierte la siguiente declaración al valor negativo de la variable menos uno?

$a = 1; echo ~$a // echo -2 $a = 2; echo ~$a // echo -3 $a = 3; echo ~$a // echo -4



Esto se llama aritmética del complemento de dos . Puedes leer sobre esto en más detalle aquí .

El operador ~ es un operador de negación binaria (en oposición a la negación booleana), y siendo eso, invierte todos los bits de su operando. El resultado es un número negativo en la aritmética del complemento de dos.


~ voltea todos los bits del número. En el complemento de dos (google), la negación matemática se puede lograr al voltear todos los bits y luego agregar 1. Si solo haces el primer paso (es decir, solo voltea los bits), tienes el inverso aditivo menos 1.