一、二进制基本概念:
所谓二进制就是逢二进一(0,1),因为使用二进制只有0,1两个数,易于电子方式实现。同时通过0、1组合可以表示任意一个数。
1、二进制的最高位是符号位(左边第一个数):0表示正数,1表示负数;
2、正数的原码、反码、补码都一样;
3、负数的反码=它的原码符号位不变,其他位取反(0->1,1->0);
4、负数的补码=它的反码+1;
5、0的反码补码都是0;
6、php没有无符号数,换言之php中的数都是有符号的;
7、在计算机运算的时候都是以补码的方式来运算的。
原码:
1 ------> 00000000 00000000 000000000 00000001
-1的原码:10000000 00000000 00000000 00000001
-1的反码:11111111 11111111 11111111 11111110
-1的补码:11111111 11111111 11111111 11111111
二、位运算一览表:
该图的前面四个是位运算,其运算规则是:
按位与&:两位全为1,结果为1;
按位或|:两位有一个为1,结果为1;
按位异或^:两位一个为0,一个为1,结果为1;
按位取反~:0->1,1->0。
后面两个是位移运算,运算规则是:
算术右移:低位溢出,符号位不变,并用符号位补益出的高位;
算术左移:符号位不变,低位补0。