PHP位运算
- 二进制
二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是
“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微
小的开关,用“开”来表示1,“关”来表示0。
20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。
19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号"0’’.’‘1’'的某种代数演算,二进制是逢2进位的进位制。0、1是基本算符。
因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。
- 二进制的特性
-
只有 0 和 1 组成, 逢二进一,借一当二
-
二进制中有原码,反码,补码的概念
-
正数的原码,补码,反码都是它本身
-
0 的原码,反码,补码都是它本身
-
负数的的反码是原码的位数取反,即 0=》1, 1=》0
-
负数的补码是反码加+1
-
在二进制当中,最高位代表数的正负,0 代表正数, 1 代表负数
-
在PHP当中的位运算,都是以补码的形式进行的
-
在PHP当中,所有的数都是有符号的,即不考虑无符号数的情况
- PHP位运算
&
按位与 二进制中相对应的位都是 1 的位才为 1
var_dump(2 & 3);
2 的原码,反码,补码
00000000 00000000 00000000 00000010
3 的原码,反码,补码
00000000 00000000 00000000