Erlo

PHP | 运算符

2020-09-03 14:30:39 发布   301 浏览  
页面报错/反馈
收藏 点赞

概念

位运算符允许对整型数中指定的位进行求值和操作。

命令

例子变量 $a = 1; //8位二进制 0000 0001

​ $b = 3; //8位二进制 0000 0011

命令符号 名称 例子 作用 结果 二进制
& And(按位与) $a & $b $a与$b中都为1的位,设为1反之则设为0 1 0000 0001
| Or(按位或) $a | $b $a与$b中任何一个为1的位设为1 3 0000 0011
^ Xor(按位异或) $a ^ $b $a与$b中一个为0,一个为1的位,设为1 2 0000 0010
~ Not(按位取反) ~ $a 将 $a 中为 0 的位设为 1,反之亦然。 -2 这个单独分析一下
<< shift left(左移) $a << 1 $a往左移一位,也可以理解为每移动一次都乘以2 2 0000 00
>> shift right(右移) $a >> 1 $a往右移一位,也可以理解为每移动一次都除以2 0 0000 0000

分析 ~

首先 1的32位二进制是

原值 :0000 0000 0000 0000 0000 0000 0000 0001

取反: 1111 1111 1111 1111 1111 1111 1111 1110

由于最前面的数为1,符号位为1,即为负数,所以,以其正值的补码形式表示为:(符号位不变,按位取反,末尾加1)

1000 0000 0000 0000 0000 0000 0000 0001

所以即输出值为2

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认