【python 运算符种类及优先级 补码 位运算】

整体框架

整体框架

位运算

位运算的基础——补码

数值在计算机中都是以补码的形式进行存储,所有的位运算也是在补码的基础上进行的。
补码的转换规则
或者用这个方法:

  • 对于给定的整数 x,如果 x 是非负数(即 x ≥ 0),则它的补码就是它本身。
  • 对于给定的整数 x,如果 x 是负数(即 x < 0),则它的补码可以通过以下步骤计算:
    1. 将 x 的绝对值转换为二进制表示形式。
    2. 如果二进制表示形式的位数不足,要在最高位前面补足足够的零,使之达到所需的位数。
    3. 反转所有位的值(0 变为 1,1 变为 0)。
    4. 对反转后的二进制数加 1。

举个例子,假设要将整数 -5 转换为补码:

  1. 先将 5 转换为二进制,得到 101。
  2. 由于 101 只有 3 位,需要在最高位前面补足一个零,得到 0101。
  3. 反转所有位的值,得到 1010。
  4. 将反转后的二进制数加 1,得到 1011。这就是 -5 的补码表示形式。

这个公式适用于大多数计算机系统中的补码表示方法。

理解位运算符

我们通过补码就很好理解下面代码的运行结果

print~2)
输出:-3

不理解的友可以在评论区评论“为什么?”,有需要的话,我再详细写出推导过程

注意点

对于>>有一点特别之处,负数的补码首位为1,在进行>>后,为保持符号不变,会在首位补1!

对于身份、逻辑、成员运算符

注意它的输入类型,比如逻辑运算符,输入是两个布尔值。

对于四则运算符的使用,我在上一篇博客已经进行了讲解,有需要的友可以点进我的主页进行查看

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值