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

python位运算 Opération bit à bit : &、|、^、~、>>、<<

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

python位运算 Opération bit à bit : &、|、^、~、>>、<<

python位运算 1, 概念

2, 用途 2.1,判断奇偶

a&10 相当于a%20

1&1,1&3,1&2,1&4
# output : (1, 1, 0, 0)
2.2清零
0&1,0&3,0&2,0&4
# output (0, 0, 0, 0)
2.3 取指定位

ex: 取x=1010 0110得低3位,则需要找一个数n=0000 0111, 令n的低3位为1,其余为0,则x&y=1010 0110

n=int('00000111',2)
x=int('10100110',2)
x&n,bin(x&n)
# output (6, '0b110')
2.4 将特定位置设定为1

ex: 将x=1010 0110的低4位全部设为1,只需要另一个数n=0000 1111的低4位为1,其余为0,用符号’|'即可得到

n=int('00001111',2)
x=int('10100110',2)
bin(x|n)
# output = '0b10101111'
2.5 ‘^’的规律:
  1. 交换律: x^ y=y^x
    2, 结合律: (x^ y)^c=x ^(y ^ c)
    3, 对于任何数x,都有 x^ x=0,x^0=x
    4, 自反性: a^ b ^ b=a^0=a;
2.6 x与0异或值不变, 与自己异或为0

x^ x=0,x^0=x

2.7 翻转指定位

ex: X=1010 1110 的低4位进行翻转,只需要另找一个数Y=0000 1111,,然后将X与Y进行异或运算(X^Y=1010 0001)即可得到。

n=int('00001111',2)
x=int('10100110',2)
bin(x^n)
# output : '0b1010 1001'
2.8 x>>i = x / (2^ i); x<32<<3 # 256 3, 补充bin()和int(str/int,base)

bin() 把一个数转换成二进制,以0b开头
oct()把一个数转换成八进制,以0o开头
hex()把一个数转换成16进制,以0x开头

int()默认base=10,如果指定base,则第一个数是str,如果不指定base,则第一个数是int

int('1111',2) # 15 若 x 为 str,则 base 可略可有
int(8) # 8
# int(8,10)#若 x 为纯数字,则不能有 base 参数,否则报错
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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