为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
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 0000000000000001[原码]->-1

 

 

  以上的运算,先转为补码进行运算,得到的结果为补码,再转为原码

 

  例子:13&7=?与

  13的补码:00000000 00000000 00000000 00001101

  7的补码:  00000000 00000000 0000000000000111

  13&7       00000000 0000000000000000 00000101[补码]->5

 

  例子:5|4=?或

  5的补码: 00000000 00000000 00000000 00000101

  4的补码: 00000000 00000000 00000000 00000100

  5|4=       00000000 0000000000000000 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 1111111111111111 11111001[补码]

 

                    11111111 11111111 11111111 11111000[反码] 补码-1

                   10000000 00000000 0000000000000111[原码]->-2




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消