61.Python之位运算

二进制:

  • 通常我们说的整数是十进制,由0123456789组成
  • 二进制的数则是由01组成

比如将整数123转换成二进制的
123除以2,等于61余1
61除以2,等于30余1
30除以2,等于15余0
15除以2,等于7余1
7除以2,等于3余1
3除以2,等于1余1
1除以2,余1
将上面获得余数从底向上填写,即:1111011,这个就是十进制123转成二进制的数

将1111011转成十进制,从右往左取数:
12^0=1
1
2^1=2
02^2=0
1
2^3=8
12^4=16
1
2^5=32
1*2^6=64
将上面的数字相加:1+2+0+8+16+32+64=123

# 十进制转二进制
print(bin(123))

# 二进制转十进制
print(int(0b1111011))

在这里插入图片描述

位运算:

1.按位与运算:&

  • 参与运算的两个值,若是两个相对应的值是1,则返回1,否则是0

比如:
123转成二进制:1111011
20转成二进制:10100,为了方便与上面的进行运行,可以在前面补0,即:0010100

1111011
0010100
进行与运算后:0010000,即是16

# 十进制转二进制
print(bin(123),bin(20))
print(123 & 20)

在这里插入图片描述

2.按位或运算:|

  • 参与运算的两个值,若是两个相对应的值只要有1,则返回1,否则是0

比如:
123转成二进制:1111011
20转成二进制:10100,为了方便与上面的进行运行,可以在前面补0,即:0010100

1111011
0010100
进行与运算后:1111111,即是127

# 十进制转二进制
print(bin(123),bin(20))
print(123 | 20)

在这里插入图片描述

3.按位异或运算:^

  • 参与运算的两个值,若是两个相对应的值不同,则返回1,否则是0

1111011
0010100
进行与运算后:1101111,即是111

# 十进制转二进制
print(bin(123),bin(20))
print(123 ^ 20)

在这里插入图片描述

4.按位取反运算:~

  • 对数据的每个二进制数据取反,~a=-(a+1)
例如~123
print(bin(123))
print(~123)

在这里插入图片描述

5.左移运算符:<<

  • <<左边的运算数的各二进制全部左移若干未,<<右边的数字决定移动多少位数,高位丢弃,低位补0

6.右移运算符:>>

  • 在>>左边的运算数的各二进制全部右移若干未,<<右边的数字决定移动多少位数,高位丢弃,低位补0

比如:
123 << 2,1111011向左移2位,在右边添加2个0:111101100
123 >> 2,1111011向右移2位,去掉右边的2个数:11110

print(bin(123))
print(bin(123 << 2))
print(bin(123 >> 2))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值