重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
位运算算法:& ,|, ^, ~, >>, <<
专注于为中小企业提供网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业天涯免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
1.常量定义:
写法一:define ("AYX",0.08);
写法二:const AYX=0.08;
2.函数引用:
写法一:require 'function.php';
写法二:require_once 'function.php';
写法三:include 'function.php';
写法四:include_once 'function.php';
函数名不区分大小写
3.二进制:
最高位为符号位,正数为0,负数为1
原码:用二进制来表示一个数
例:0000000 00000000 00000000 00000001(1 32位 4字节)
正数的原码,反码,补码都一样
负数的反码:原码符号位不变,其他位取反
负数的补码:反码+1
0的反码,补码都是0
php中都是有符号数
计算机运算时,都是以补码形式运算
4.位运算:
按位与:$a & $b
按位或:$a | $b
按位异或:$a ^ $b不同的位,置1
非:~$a 取反
左移:$a<<$b
右移:$a>>$b
规则:
算术右移:低位溢出,符号位不变,并用符号位补溢出的高位
算术左移:符号位不变,低位补
3*8===3<<3
例子:
1>>2=?
1补码:00000000 00000000 00000000 00000001
1>>2 00000000 00000000 00000000 00000000[补码]->0
例子:
-1>>2=?
-1补码:11111111 11111111 11111111 11111111
-1>>2 11111111 11111111 11111111 11111111[补码]
11111111 11111111 11111111 11111110[反码]
10000000 00000000 00000000 00000001[原码]->-1
1<<2=?
1补码:00000000 00000000 00000000 00000001
1<<2 00000000 00000000 00000000 00000100[补码]->4=1*2*2每次移动一位,相当于乘以2
例子:
-1<<2=?
-1补码:11111111 11111111 11111111 11111111
-1<<2 11111111 11111111 11111111 11111111[补码]
11111111 11111111 11111111 11111110[反码]
10000000 00000000 00000000 00000001[原码]->-1
以上的运算,先转为补码进行运算,得到的结果为补码,再转为原码
例子:13&7=?与
13的补码:00000000 00000000 00000000 00001101
7的补码: 00000000 00000000 00000000 00000111
13&7: 00000000 00000000 00000000 00000101[补码]->5
例子:5|4=?或
5的补码: 00000000 00000000 00000000 00000101
4的补码: 00000000 00000000 00000000 00000100
5|4=: 00000000 00000000 00000000 00000101[补码]->5
例子:-3^3=?异或
-3的原码: 10000000 00000000 00000000 00000011
-3的反码: 11111111 11111111 11111111 11111100
-3的补码: 11111111 11111111 11111111 11111101
3的补码: 00000000 00000000 00000000 00000011
-3^3=: 11111111 11111111 11111111 11111001[补码]
11111111 11111111 11111111 11111000[反码]补码-1
10000000 00000000 00000000 00000111[原码]->-2