Python3.*(第九课——运算符,重要的佐料二)

位运算符

    &:按位与。

    |:按位或。

    ^: 按位异或。

    ~:按位取反

    <<:左移位运算

    >>:右移位运算

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。这一点与C类似,C语言也是非0表示真,0表示假。

x = 4

              print((x < 3) & (x < 6)) #false true = false

              print((x > 3) & (x > 6)) #true false = false

              print((x < 3) & (x > 6)) #false false = false

              print((x > 3) & (x < 6)) #true true = true          

              总结:只要有一个为false,结果直接为false。只有两边都为true,结果为true。

print(5&9)  # 输出1

解析:

整数5的二进制:00000101       整数9的二进制:00001001

x = 4

              print((x < 3) | (x < 6)) #false true = true

              print((x > 3) | (x > 6)) #true false = true

              print((x < 3) | (x > 6)) #false false = false

              print((x > 3) | (x < 6)) #true true = true           

              总结:两边只要有一个为true,结果为true。 只有两边都有false,结果为false。

print(5|9) #输出13

解析:(与上同理)

x = 4

              print((x < 3) ^ (x < 6)) #false true = true

              print((x > 3) ^ (x > 6)) #true false = true

              print((x < 3) ^ (x > 6)) #false false = false

              print((x > 3) ^ (x < 6)) #true true = false

              总结:两边相同结果是false; 两边不同结果是true;

print(5^9) #输出12

解析:(与上同理)

a = -5

print(~a) # 输出4

首先我们要弄懂几个概念:

1、原码是直接将一个数值换算成二进制数

2、有符号整数的最高位是符号位,符号位为0代表正数,1代表负数。

3、无符号整数则没有符号位,只能表示0和整数。

4、计算机底层以补码的形式保存所有的整数。

补码的计算规则是:正数的补码和原码完全相同,负数的补码是其反码加1;

                                反码是对原码按位取反,只是最高位(符号位)保持不变。

print(5<<2) #输出20

print(-5<<2) #输出-20

左移运算符是将操作数的二进制码整体左移指定位数,左移后右边空出来的位以0来填充

-5左移如下图:

左移两位后得到一个二进制补码,这个二进制补码的最高位是1,表明是一个负数,换算成十进制数就是-20.

print(-5 >> 2) #输出-2

-5右移两位后左边空出两位,空出来的两位以符号位来填充。

右移运算后得到的结果的正负与第一个操作数的正负相同。左边空出来的位以原来的符号来填充(正数,左边补0;负数左边补1)

位移运算符只适合对整型数进行运算

右移n位,相当于除以2的n次方

左移n位就相当于乘以2的n次方

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值