栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-按位操作和用法

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

Python-按位操作和用法

按位运算符是对多位值进行操作的运算符,但在概念上一次只能处理一位。

  • AND
    仅当其两个输入均为1时,才为1;否则为0。
  • OR
    如果其输入之一或全部为1,则为1,否则为0。
  • XOR
    仅当其输入之一恰好为1时为1,否则为0。
  • NOT
    仅当输入为0时为1,否则为0。

这些通常可以最好地显示为真值表。输入的可能性在顶部和左侧,结果位是在输入的交点处显示的四个值之一(如果不是,则为两个,因为它只有一个输入)。

AND | 0 1     OR | 0 1     XOR | 0 1    NOT | 0 1----+-----    ---+----     ----+----    ----+---- 0  | 0 0      0 | 0 1       0 | 0 1        | 1 0 1  | 0 1      1 | 1 1       1 | 1 0

一个示例是,如果你只想要整数的低4位,则将其与15(二进制1111)进行与,则:

    201: 1100 1001AND  15: 0000 1111------------------ IS   9  0000 1001

在那种情况下,15中的零位有效地充当了过滤器,迫使结果中的位也为零。

另外,

>>
<<
通常作为按位运算符包括在内,它们分别将值“左”右移和左移一定数量的比特,丢掉将要移向的端点的比特,并在该比特处输入零。另一端。

因此,例如:

1001 0101 >> 2 gives 0010 01011111 1111 << 4 gives 1111 0000

请注意,Python中的左移是不寻常的,因为它没有使用固定的宽度来丢弃位-虽然许多语言根据数据类型使用固定的宽度,但是Python只是扩展宽度以迎合额外的位。为了获得Python中的丢弃行为,你可以按位向左移动,and例如在8位值中向左移动四位:

bits8 = (bits8 << 4) & 255

考虑到这一点,位运算符的另一个例子是,如果你有两个4位值要打包成一个8位的一个,你可以使用所有这三个操作员的(

left-shift
and
or
):

packed_val = ((val1 & 15) << 4) | (val2 & 15)
  • 该& 15操作将确保两个值仅具有低4位。
  • << 4是一个4位左移位移动val1进入前的8位值的4位。
  • 在|简单地结合了这两者结合起来。

如果val1为7且val2为4:

     val1 val2     ==== ==== & 15 (and)   xxxx-0111       xxxx-0100  & 15 << 4 (left)  0111-0000|       |    |       +-------+-------+    || (or)     0111-0100


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

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

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