您的位置:首页 > 编程语言 > PHP开发

PHP中的位运算符的特性极其使用技巧

2017-06-10 13:55 218 查看
<?php

//1.位运算符两边的值必须是整形和浮点型,当是其它类型的值时会先转换成整形和浮点型再来参与位运算;

 //而逻辑运算符两边参与运算的值必须是布尔型;

 var_dump(12&13);//输出 int 12

 //12转换成32位的二进制数为:00000000 00000000 00000000 00001100

 //13转换成32位的二进制数为:00000000 00000000 00000000 00001101

 //按位运算后得到的值为      00000000 00000000 00000000 00001100 ,等于12

 

 var_dump('A'&'a');//输出string 'A';因为A=65,a=97

 

 var_dump('A'&97);//输出int 0;因为字符串A会先转换为整数的0后再参与位运算

 

 //2.位运算与逻辑运算不同没有短路特性

 $a=3;

 $b=10;

 if($a>5&&$b++<100)

 {

     echo "1111111111";

 }

 echo $b."<br>";//输出$b=10,逻辑运算短路,$b没有自加;

 

 if($a>5&$b++<100)

 {

     echo "1111111";

 }

 echo $b."<br>";//输出$b=11,位运算不短路,$b自加;

 

 //3.按位非,按位异或等比较简单,这里不做过多讲叙;现在讲讲按位左移和按位右移动

 var_dump(12>>2);//输出int 3

 var_dump(12<<2);//输出int 48

 //可以发现,左移几位就相当于乘以2的多少次方;按位右移就相当于除以2的多少次方;

 

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息