22-位运算符

#按为与运算 & ,按位或运算 | ,按位异或运算 ^ ,
#按位左移运算 << ,按位右移运算 >> ,按位取反运算 ~

#将所有的数字转换成二进制再进行运算
#--------------------------------------------------------------------------
#按为与运算 &
a = 23 #0b 10111
b = 15 #0b 01111 ###########同为1则为1,否则为0
#0b 00111 =十进制的7
print(0b111)
print(a & b) #7

#--------------------------------------------------------------------------
#按位或运算 |
a = 23 #0b 10111
b = 15 #0b 01111 ###########只要有一个是1,结果就是1,否则为0
#0b 11111 =十进制的31
print(0b11111) #31
print(a | b) #31

#--------------------------------------------------------------------------
#按位异或运算 ^
a = 23 #0b 10111
b = 15 #0b 01111 ###########相同为0,否则为1
#0b 11000 =十进制的24
print(0b11000) #24
print(a ^ b) #24

#--------------------------------------------------------------------------
#按位左移运算 << 16 8 4 2 1
x = 5 #0b 101 1 0 1 ,在后面增加两位
print(x << 2) #左移2位变成:1 0 1 0 0 ,那么此时 x = ob10100 =20
print(0b10100) #20
#同理 32 16 8 4 2 1
x = 5 #0b 101 1 0 1,在后面增加三位
print(x << 3)#左移3位变成:1 0 1 0 0 0,那么此时 x = ob101000 =40
print(0b101000) #40
#概念:x = 5,print(x << 2)。就是 52的2次方 (变量x 乘 位移数y的二次方)
#同理:x = 5,print(x << 3)。就是 5
3的2次方 (变量x 乘 位移数y的二次方)

#--------------------------------------------------------------------------
#按位右移运算 << 16 8 4 2 1
x = 15 #0b 0b1111 1 1 1 1,在后面减少两位
print(x >> 2) #右移2位变成: 1 1 ,那么此时 x = ob11 =3
print(float (15/4)) #浮点数向后取整
print(0b11) #3
#概念:x = 15,print(x >> 2)。就是 15/2的2次方 (变量x 除 位移数y的二次方)

#--------------------------------------------------------------------------

#按位取反运算 << 16 8 4 2 1
x = 11 #0b 0b1011 1 0 1 1
print(~x) #0变1,1变0: 0 1 0 0 变成-0100再-1
#概念: ~x = -x-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值