栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

61.Python之位运算

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/280393.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号