简单的位运算入门,适合不知道什么是位运算的新手看看!

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

posted @ 2013-10-15 13:12  小俎俎  阅读(529)  评论(0)    收藏  举报