Rumah > pembangunan bahagian belakang > tutorial php > PHP运算符(四)”位运算符“实例讲解

PHP运算符(四)”位运算符“实例讲解

怪我咯
Lepaskan: 2023-03-07 12:18:02
asal
3530 orang telah melayarinya

我们已经讲解了PHP运算符中的“php算术运算符”,“php字符串运算符”,“赋值运算符”,今天给大家详细介绍一下PHP运算符中的“位运算符”

位运算符在PHP中不经常用到,但是他的用处还是很大,下面的内容我们会举例说明一下位运算符的用法。

位运算符是指对二进制位从低位到高位对齐后进行运算,它允许对整型数中指定的位进行求值和操作。

在PHP中的为运算符如下表所示

运算符 说明 例子
& 按位与 $m & $n
 | 按位或 $m | &$n
^ 按位异或 $m ^ $n
~ 按位非或按位取反 $m ~ $n
<< 左移$m << $n
>> 右移 $m >> $n

下面我们用例子来上面一下上表中的运算符

<?php

$m=1;                //1=0 00000001
$n=2;                 //2=00000010

$mn=$m&$n;
echo $mn."<br/>";

$mn=$m^$n;
echo $mn."<br/>";

$mn=$m|$n;
echo $mn;

?>
Salin selepas log masuk

代码运行结果:

1.png

例子解释:

$m&$n : 二者都为 1 时为 1 ,否则为 0。即把 $a 和 $b 中都为 1 的位设为 1 ,否则设为 0 。

00000001 ← $m
& 00000010 ← $b

比较结果为00000000,所以输出0


$m^$n :在按位亦或的过程中,不同为1,相同为0。
00000001 ← $m

^ 00000010 ← $n

所以结果为00000011,进而输出3。


$m|$n: 在按位或的过程中,有1为1,全0为0,

00000001 ← $m

| 00000010 ← $n

则结果为00000011,所以输出3

上面的例子讲了“按位或”,“按位或”,“按位异或”,下面我们再来看一下后面的三种示例


按位非或按位取反示例,代码如下

<?php
$m = 2;
$m1 = ~$m;
echo $m1;
?>
Salin selepas log masuk

运行结果

2.png

此时我们的运行结果为-3,这里需要注意。

注:在计算机中,负数以其正值的补码形式表达。

1: 2的32位原码为 0000 0000 0000 0000 0000 0000 0000 0010

2: 按位取反后为 1111 1111 1111 1111 1111 1111 1111 1101

由于最前面的数为1,符号位为1,即为负数,所以,以其正值的补码形式表示为:(符号位不变,按位取反,末尾加1)

1000 0000 0000 0000 0000 0000 0000 0011

所以输出为-3



左移右移代码示例

<?php
$m = 12;     // 12=00001100
$n = 3;     // 3=00000011

$mn= $m << $n;
echo $mn ."<br/>";

$mn= $m >> $n;
echo $mn ; 
?>
Salin selepas log masuk

运行结果:

4.png

示例解释:


$m<<$n:将 $m 中的位向左移动 $n 次(每一次移动都表示“乘以 2”,即“乘以 2$b ”)。
0000 1100 ← $m
<< 0110 0000 左移3个,空出的位置用 0 补充


0110 0000 = 96


$m>>$n:将 $m中的位向右移动 $n 次(每一次移动都表示“除以 2”,即“乘以 2 -$b ”)。
       0000 1100 ← $m
<<   0000 0001 右移3个,多出的位置截掉


0000 0001 = 1


上面的内容就是PHP运算中的“位运算符”的详细内容,如果有什么不懂的,可以关注我们PHP中文网,在上面进行留言,我们将第一时间给你解答或者在PHP中文网搜索,也许能找到你想的。下一节,我们将详细介绍PHP运算中的逻辑运算符

Atas ialah kandungan terperinci PHP运算符(四)”位运算符“实例讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan