~ 按位运算符(波浪号)的功能是什么

2022-08-30 16:06:12

可能的重复:
这个〜运算符在这里是什么意思?
Bit not operations in PHP(或任何其他语言)

有人可以用PHP向我解释运算符吗?我知道这是一个NOT运算符,但是为什么PHP将以下语句转换为变量减一的负值?~

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

答案 1

这被称为两者的补码算术。您可以在此处更详细地阅读有关它的信息。

运算符是二元否定运算符(与布尔否定相反),并且就是这样,它反转其操作数的所有位。结果是二的补码算术中的负数。~


答案 2

这有点不是。

它将所有 1 转换为 0,并将所有 0 转换为 1。所以 1 变为 -2(二进制表示形式为 0b111111111110)。

查看文档 http://php.net/manual/en/language.operators.bitwise.php


推荐