python或运算_python算数、逻辑运算,位运算

算术运算符

对变量和数组进行算术运算。

算术运算符:+,-,*,/,%

+:将连个或者多个数值相加

-:将两个数值相减

*:将两个数值相乘

/:将两个数值相除

%:取相除的余数

1226855-20181105121945023-1808358096.png

赋值运算符

将右边的值(计算结果)赋值给左边的变量

赋值运算符:=,+=,-=,*=,/=,%=,.=

=:赋值,将右边的值赋值给左边的变量

+=:将左边的变量的值加上右边的结果之后,再将值赋值给左边的变量

-=,*=,/=,%=,.=都是一样的效果

1226855-20181105122054952-23413119.png

注意!!!“.”十分特殊,表示一种字符串连接运算

抑制错误,不让错误出现

错误抑制符:@

1226855-20181105125317845-996652041.png

三元运算符

参与运算的表达式有三个

语法:表达式1 ? 表达式2: 表达式3

如果表达式1为真,那么计算表达式2,否则计算表达式3

1226855-20181105125426258-1337583406.png

<?php

$wenheichouwa= "ishere";

$res= ($wenheichouwa=="ishere")?"喜欢小烤肠和小松鼠":"喜欢昌仔";

echo $res."
";

$duwa= &$wenheichouwa;

$duwa= "nothere";

echo $res."
";

echo $wenheichouwa."
";

echo $duwa."
";

$res= ($wenheichouwa=="ishere")?"喜欢小烤肠和小松鼠":"喜欢昌仔";

echo $res."
";?>

自操作运算符

自己操作自己的运算符

自操作运算符:++,--

++:分为前置++和后置++,$a = $a + 1

前置++:++$a,

后置++:$a++

1226855-20181105131839979-1067668809.png

通常,在循环中,使用自运算比较,用户控制循环变量。

字符串运算符

连接字符串

字符串运算符:.和.=

$a = ‘hello ’;

$b = ‘world’;

.:表示两个字符串连接,不会改变原来的变量本身

$c = $a . $b;

.=:将两个字符串连接起来后再赋值给左边的变量

$a .= $b <===========> $a = $a . $b;

位运算符

针对系统硬盘上存储的位进行操作(实际操作是以字节为单位),位运算在计算过程中,每个位的操作返回的结果都是1或者0

位运算符:&,|,~,^,>>,<<

&:按位与,表示两个位都为1时,则返回1,否则返回0

|:按位或,表示两个有一个为1的时候,返回1,否则返回0

~:按位非,如果本身为0,则返回1,如果本身为1,则返回0

^:按位异或,如果两位不相同时,则返回1,如果两位相同则返回0

>>:按位右移,将整个字节向右移一位,左边空出来的使用0补充

<<:按位左移,将整个字节向左移一位,右边空出来的使用0补充

1226855-20181105133352613-779588345.png

右移运算乃是原来的结果右移几位就除以几个2,然后向下取整,左移运算是原来的结果左移几位就乘以几个2;

<?php

$mynum=5;

echo "mynum左移5位的最终结果是".($mynum<<6)."
";

$hisnum=6;

echo "hisnum右移2位的结果是".($hisnum>>2)."
";

?>

1226855-20181105135133720-901217271.png

原码,反码,补码

原码----一个数的二进制形式

反码----一个数二进制按位取反

补码----一个数二进制按位取反并加1,一个正数的原码,反码,补码都相同

存储的实际情况----正数以原码的形式存储,负数以补码的形式存储。

以整数1为例,我们知道php的整型数占4个字节,每个字节占8位,正数的原码,反码,补码又都相同,正数的最高位是0,所以对于1有

#原码00000000 00000000 00000000 00000001#反码00000000 00000000 00000000 00000001#补码00000000 00000000 00000000 00000001

负数反码。补码的错误操作形式

而对于-1来说,按照既定原则,最高位应该为1,所以他的原码形式为

#原码10000000 00000000 00000000 00000001反码就是各位取反

#反码01111111 11111111 11111111 11111110补码就是反码各位再加1

01111111 11111111 11111111 11111110

+

00000000 00000000 00000000 00000001

=

01111111 11111111 11111111 11111111

但是问题显然出现了,最终结果01111111 11111111 11111111 11111111 明显是个正数!

所以对于负数来说,他的反码形式是 最高位不动,其余的位取反

正确姿势,负数的反码最高位不变,其他位取反-1的反码

#反码1111111111111111 11111111 11111110补码= 反码+1

11111111 11111111 11111111 11111110

+

00000000 00000000 00000000 00000001

=补码为11111111 11111111 11111111 11111111

php提供了几常见进制之间转换的函数

二进制转为其他进制

binoct();//转为八进制

bindec();//转为十进制

binhex();//转为十六进制

八进制转为其他进制

octbin();//转为二进制

octdec();//转为十进制

octhex();//转为十六进制

十进制转为其他进制

decbin();//转为二进制

decoct();//转为八进制

dechex();转为十六进制

十六进制转为其他进制

hexbin();转为二进制

hexoct();//转为八进制

hexdec();//转为十六进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值