当前位置: 首页 > 编程开发 > 正文

PHP 按位取反 运算符(~) 到底怎么算出来的?

$a = 8 $b = ~$a echo $b 结果是 - 9

在数值范围内,~a = -(a+1)

8的二进制是1000,补满32位,也就是前面28个0 1000
取反后 28个1 0111
第一位是符号位 1代表负数,剩下的27个1 0111
负数是用补码表示的,补码是原码取反+1,也就是说 27个1 0111 是某个数的补码,那倒推回去,这个数就是补码-1后取反,也就是 27个1 0110取反,得到27个0 1001,也就是9,再加上前面的符号位,得到-9


本文固定链接: http://www.chnpanda.com/1094.html | 熊猫博客 | 转载请注明出处,谢谢合作!

PHP 按位取反 运算符(~) 到底怎么算出来的?:等您坐沙发呢!

发表评论

亲,不支持纯字母、符号评论哦~