位运算符

来源:互联网 发布:win7 nls数据丢失 编辑:程序博客网 时间:2024/04/28 20:23

php/c  位运算符列表:

(1)&:  按位与  如果两个相应的二进制位都为1,则该位的结果为1,否则为0.

eg:5 &3 =1   附计算过程: 这里都是转换成二进制计算  5(十进制)---》  00000101     3(十进制) ---》00000011 

00000101        

& 00000011

00000001 (二进制)---  1(十进制)   至于十进制转成2进制    就是 除2 取余  倒序排列   eg:

5  除2   商 2  余数1      在对商进行整除     2 除2  商1 余 0      1除2    商0  余1    所以:                     00000101 (余数倒序排列,没有补0)

00000001(二进制) 转成 十进制  就是  每个位数上的值 乘以 2的第几位的位数减一次方:

eg:   1*2(1-1)+0*2(2-1)+0*2(3-1)+0*2(4-1)......= 1+0+0+0.....=1   所以  5  &  3  =1

(2) |

(3)  <<  左移 

原理:将一个数字(10进制)转换成2进制  向左移动几位 就去掉左边几位的数字,然后在右边补0 

eg:15 左移2  为:60  15(00001111) 左移变为 00111100(60) 

   口诀:高位左移后溢出,舍弃。 但是左移分2种情况

在数字没有溢出的前提下,对于正数负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

举个例子:64 左移2位就是 64*4= 256(100000000) 需要舍弃 就是:00000000 这种就是特殊情况

0 0