推荐:《PHP视频教程》
位运算符
位运算符是指对二进制位从低位到高位对齐后进行运算。
| 符号 | 作用 | 举例 | 个人理解 |
|---|---|---|---|
| & | 按位与 | $m & $n |
全1为1,否则为0 |
| | | 按位或 | $m | $n |
全0为0,有1为1 |
| ^ | 按位异或 | $m | $n |
不同为1,相同为0 |
| ~ | 按位取反 | ~$m |
|
| << | 向左移位 | $m << $n |
|
| >> | 向右移位 | $m >> $n |
&运算符
Salin selepas log masuk
运行结果为0
解释:将1,2分别转换为二进制为
00000001
00000010
在按位与的过程中,按位比较,全1为1,比较结果为00000000,所以输出0
|运算符
Salin selepas log masuk
运行结果为3,同样,转换成如上的二进制
00000001
00000010
在按位或的过程中,有1为1,全0为0,则结果为00000011,所以输出3
^运算符
Salin selepas log masuk
运行结果为3,同样,转换成如上的二进制
00000001
00000010
在按位亦或的过程中,不同为1,相同为0,所以结果为00000011,进而输出3。
~运算符
Salin selepas log masuk
运行结果为-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
< <运算符< strong>运算符<>
运算结果为6
左移运算的实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃。
3的32位原码为,0000 0000 0000 0000 0000 0000 0000 0011
左移一位:0000 0000 0000 0000 0000 0000 0000 0110
所以为6
根据手册描述可以看出位运算可以看出向左移一位,则是实现乘2运算。由于位移操作的运算速度比乘法的 运算速度高很多。因此在处理数据的乘法运算的时,采用位移运算可以获得较快的速度。
提示 将所有对2的乘法运算转换为位移运算,可提高程序的运行效率。
>>运算符
右移一位,和< <运算符,类似,只不过这个是右移,此处不在做过多解释。< p>运算符,类似,只不过这个是右移,此处不在做过多解释。<>
更多编程相关知识,请访问:编程教学!!
Atas ialah kandungan terperinci 详解PHP位运算符. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Bagaimana untuk membuka fail php
Bagaimana untuk mengalih keluar beberapa elemen pertama tatasusunan dalam php
Apa yang perlu dilakukan jika penyahserialisasian php gagal
Bagaimana untuk menyambungkan php ke pangkalan data mssql
Bagaimana untuk menyambung php ke pangkalan data mssql
Bagaimana untuk memuat naik html
Bagaimana untuk menyelesaikan aksara bercelaru dalam PHP
Bagaimana untuk membuka fail php pada telefon bimbit