python - php位运算

查看:65
本文介绍了python - php位运算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

为什么会出现这样的情况呢 比如二进制 2 4 8
$a=2+4+8=14
if($a & 2) 会为真 $a&4 $a&8也是真
求大神透彻点讲解

解决方案

14的二进制:1110
2的二进制:0010
所以:

# $a & 2为
  1 1 1 0
& 0 0 1 0
----------
  0 0 1 0

&运算符,是按位取与,也就是,对应位上的两个二进制数,都为1时,才为1,其他情况,都为0。
上面只有第三位的地方,都为1,所以结果是0010。
0010表示的是十进制2。在PHP中,所有的非0值都表示真,0值表示假(大部分其他语言也有这个惯例,估计一开始是从C语言传来的,因为早期C语言没有布尔值,就使用0和非0数字来表示真假)

这样,$a & 4$a & 8就好解释了:

# $a & 4为
  1 1 1 0
& 0 1 0 0
----------
  0 1 0 0

# $a & 8为
  1 1 1 0
& 1 0 0 0
----------
  1 0 0 0

这两个结果,一个是4,一个是8,所以都是非0,所以是真。

要想得到假值,用位与的话,只有$a & 0或者$a & N(N >= 16)才有可能。

这篇关于python - php位运算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆