简单的位运算入门,适合不知道什么是位运算的新手看看!
1.说起位运算,先复习一下几个位运算符:
php中有四种运算符,按位与 '&' ,按位或 ‘|’ ,按位异或 '^',按位取反 ‘~’。
按位与 & :两位全为1,则为1。
按位或 | :两位中有一个1,就为1。
按位异或 ^: 两位中一个1,一个0,就为1,否则为0。
按位取反 ~: 0变1,1变0。
2.说完了四个位运算符,再说说二进制中的几种码,他们分别是 原码,反码,补码。
对于原码就是他的二进制数,比如十进制数5的原码是:
00000000 00000000 00000000 00000101
其他两种码均可由原码推出,具体有这么几条需要说明:
1.二进制的最高位为符号位,1表示正,0表示负。
2.正数的原码,反码,补码都一样。
3.负数的反码等于他的原码符号位不变,其他位取反。
4.负数的补码等于他的反码+1.
5.0的反码,补码都是0.
6.在php中都是有符号的。
7.计算机在运算的时候都是以补码的形式运算的。
3.简单的例子
算 13&7=?
13的原码:00000000 00000000 00000000 00001101
补码:00000000 00000000 00000000 00001101
7的原码:00000000 00000000 00000000 00000111
补码:00000000 00000000 00000000 00000111
所以:
13&7的补码:00000000 00000000 00000000 00000101 -->5(正数的所有码都一样)
2013-10-15

浙公网安备 33010602011771号