位运算符是指将二进制位从低位对齐到高位进行运算。
符号
作用
举个例子
个人理解
按位
$m $n
全1为1,否则为0
|
按位或
$m | $n
全部0是0,1是1
^
根据“异或”
$m | $n
差异为1,相同为0
~
逐位反转
~$m
左移
$m $n
向右偏移
$m $n
运算符
执行结果为0
解释:将1、2分别转换为二进制
00000001
00000010
在逐位比较中,全部1为1,比较结果为00000000,因此输出0
|运算符
执行结果为3,同样转换为上述二进制
00000001
00000010
在按位或的过程中,如果1为1,全部0为0,则结果为00000011,因此输出3
^运算符
执行结果为3,同样转换为上述二进制
00000001
00000010
在逐位按或的过程中,与1不同,相同为0,因此结果为00000011,再输出3。
~运算符
运行结果是-3,这里令人深思。
注:在计算机中,负数表示为正值的补数。
1: 2的32位源代码为0000000000000000000
按2:位反转时为1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
如果开头数为1,符号位为1,则为负数,因此作为其正值的补数,表示为()符号位不变化,逐位反转,末尾加1 ) )。
1000 0000 0000 0000 0000 0000 0000 0011
所以输出是-3
运算结果是6
左移运算的本质是将对应数据的二进制值逐位左移几个位,在空闲位置填充0,使最高有效位溢出并舍弃。
的32位源代码为0000000000000000000011
左移一位: 00000000000000000110
所以是6
根据手册的说明可知,位运算左移1位,即可实现平方运算。 因为位移操作的运算速度比乘法的运算速度高很多。 因此,在处理数据乘法运算时,使用位移运算可以获得较快的速度。
提示将所有对2的乘法转换为位移运算可以提高程序的执行效率。
运算符
向右移动一个
相关文章:
//$URL=www.XXX.com; //url地址$post='id=userpwd=123456 '; //POST数据$ch=curl_init($URL; //curl_setopt初始化($ch,CURLOPT_HEADER,1 ); //将头文件中的信息作为数据流输入curl_setopt($ch,CURLOPT_RETURNTRANSFER,1 ); //回报更多
前言简要介绍了依存倒置的原则和IoC框架的使用,但没有详细说明。 可能有些朋友分不清依赖倒置、依赖注入、控制反转这些名词,也许我们知道的只是依赖倒置是原则,依赖注入、控制反转是实现的方式。 我今后将面临更多的事情