PHP位运算以及如何引用外部文件

位运算算法& ,|,  ^,  ~, >>,   <<

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 000000011  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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值