php 位运算符

位运算符

 位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的 ASCII 值。

 在 32 位系统上不要右移超过 32 位。不要在结果可能超过 32 位的情况下左移。

  例子                  名称                               结果
 $a & $b     And(按位与)    将把 $a 和 $b 中都为 1 的位设为 1。
 $a | $b      Or(按位或)      将把 $a 或者 $b 中为 1 的位设为 1。
 $a ^ $b     Xor(按位异或)    将把 $a 和 $b 中不同的位设为 1。
 ~ $a      Not(按位非)    将 $a 中为 0 的位设为 1,反之亦然。
 $a << $b   Shift left(左移)    将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
 $a >> $b   Shift right(右移)    将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

<?php教程

$a=1; 
$b=1;
echo "<br/>And(按位与)";    //将把 $a 和 $b 中都为 1 的位设为 1
echo $a&$b;      //显示值  1

echo "<br/>Or(按位或)";    //将把 $a 或者 $b 中为 1 的位设为 1
echo $a|$b;      //显示值  1

echo "<br/> Xor(按位异或)";//将把 $a 和 $b 中不同的位设为 1
echo $a^$b;      //显示值  0

echo "<br/>Not(按位非)";    //将 $a 中为 0 的位设为 1,反之亦然
echo ~$a;      //显示值  -2

echo "<br>Shift left(左移)";//将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)
echo $a<<$b;      //显示值  2

echo "<br/>Shift right(右移)";//将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
echo $a>>$b;       //显示值 0

?>

位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的 ASCII 值。

<?php
echo 12 ^ 9; // 输出为 '5'

echo "12" ^ "9"; // 输出退格字符(ascii 8)
                    // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // 输出 ascii 值 #0 #4 #0 #0 #0
                            // 'a' ^ 'e' = #4

echo 2 ^ "3"; // 输出 1
              // 2 ^ ((int)"3") == 1

echo "2" ^ 3; // 输出 1
              // ((int)"2") ^ 3 == 1                           
?>

时间: 2024-10-11 09:30:41

php 位运算符的相关文章

java的按位运算符

按位运算符允许我们操作一个整数主数据类型中的单个"比特",即二进制位.按位运算符会对两个自变量中对应的位执行布尔代数,并最终生成一个结果. 按位运算来源于C语言的低级操作.我们经常都要直接操纵硬件,需要频繁设置硬件寄存器内的二进制位.Java的设计初衷是嵌入电视顶置盒内,所以这种低级操作仍被保留下来了.然而,由于操作系统的进步,现在也许不必过于频繁地进行按位运算. 若两个输入位都是1,则按位AND运算符(&)在输出位里生成一个1:否则生成0.若两个输入位里至少有一个是1,则按位

Java编程那些事儿25—位运算符

4.5 二进制运算符 由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符. 使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程.硬件编程等领域. 二进制运算符在数学上的意义比较有限. 在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进

JavaScript按位运算符的应用简析

 下面根据自己的认知简单的谈一下js中的位操作使用(同样适用于其他语言),如果有错误,欢迎指正 大多数语言都提供了按位运算符,按位运算符在c,c++等语言中运用广泛,而在JS,AS等脚本语言中则没有太多的应用例子,有时候,适当的使用按位运算符会取得很好的效果. 下面根据自己的认知简单的谈一下js中的位操作使用(同样适用于其他语言),如果有错误,欢迎指正.   按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是"位": 数值或字符在内存内都是被存储为

javascript运算符——位运算符全面介绍_基础知识

前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度极快,且合理使用能达到很好的效果.本文将介绍javascript中常常被忽视的运算符--位运算符 二进制表示 ECMAScript中的所有数值都以IEEE-754 64位格式存储,但位操作符并不直接操作64位的值,而是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数 这种位数转换使得在对特殊的NaN和Infinity值应用位操作时,这两个值都会被当成0来处理 如果对非数值应用位操作符,会先使用Num

C语言位运算符:与、或、异或、取反、左移与右移详细介绍_C 语言

位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将

Java中的位运算符、移位运算详细介绍_java

一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意: (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量 (也就是左右两边的值

JavaScript按位运算符的应用简析_javascript技巧

大多数语言都提供了按位运算符,按位运算符在c,c++等语言中运用广泛,而在JS,AS等脚本语言中则没有太多的应用例子,有时候,适当的使用按位运算符会取得很好的效果.下面根据自己的认知简单的谈一下js中的位操作使用(同样适用于其他语言),如果有错误,欢迎指正. 按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是"位":数值或字符在内存内都是被存储为0和1的序列,每个0和1被称之为1个位,比如说10进制数据2在计算机内被存储为 0 0 0 0 0 0

Java核心技术卷I基础知识3.5.7 位运算符

3.5.7 位运算符 处理整型类型时,可以直接对组成整型数值的各个位完成操作.这意味着可以使用掩码技术得到整数中的各个位.位运算符包括:   这些运算符按位模式处理.例如,如果n是一个整数变量,而且用二进制表示的n从右边数第4位为1,则   会返回1,否则返回0.利用&并结合使用适当的2的幂,可以把其他位掩掉,而只保留其中的某一位.       注释:应用在布尔值上时,&和|运算符也会得到一个布尔值.这些运算符与&&和||运算符很类似,不过&和|运算符不采用&quo

JavaScript使用位运算符判断奇数和偶数的方法_javascript技巧

本文实例讲述了JavaScript使用位运算符判断奇数和偶数的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&qu

C++位运算符详解(异或运算符和移位运算符)_C 语言

什么是位运算 位运算符按二进制进行运算,这些运算符只能用于整数类型的操作.如:char,short,int,long 通过位运算符来获取高位值和低位值 int a=0x1234; int high,low; high = (a>>8) &0x00ff; low = a & 0x00ff; 左移运算符和右移运算符(<<和>>) 左移是将一个二进制数,移动若干位,右边空出的位置用0来填补,高位左移溢出应该舍弃该高位. 如:inta = 8, a = 0000