python位运算符的使用

python中的位运算符有:
        &  与
        |  或
        ~  非 
        ^  异或
        >> 右移
        << 左移

1. & 与

    print(3 & 2)
    '''
    ture 1
    false 2

       00000011  = 3
    & 00000010  = 2
    ------------
       00000010  = 2 (结果)

将两个数值的二进制上下对齐,由真假判断结果
    '''

2. |  或

    print(3 | 2)
    '''
      00000011  = 3
    | 00000010  = 2
    ------------
      00000011  = 3  (结果)

将两个数值的二进制上下对齐,由真假判断结果
    '''

3.  ~  非

    print(~ 3)
    '''
     00000011 = 3
    取反:
     11111100 
    看第一位(符号位),如果是 1 则是负数,是 0 则是正数,如果是 1 则按照负数求二进制的方法求出
     再取反:
     00000011
     加 1 
     00000100 = 4  所以结果为 -4
    '''

    '''
    ①正数的反码和补码都与原码相同。
    ②而负数的反码为对该数的原码除符号位外各位取反。
    ③负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1

    '''

4. ^ 异或

    print(3^5)
    '''
        00000011 = 3
        00000101 = 5
        -------------------
        00000110 = 6

    ^ 异或
    两个数的二进制上下对齐,相同为 0   不同为 1

    '''

5. <<  左移    >>右移

    print(2<<1)
    print(2>>1)
    '''
     <<  左移    数值 << 或者 >> 移动的位数
     将数的二进制向左移动 n 位 右边添加 n 个 0 ,结果只看后八位
       例: m << n  结果:m*2^n

     >>  右移    数值 << 或者 >> 移动的位数
     将数值的二进制向右移动 n 位 在左边添加 n 个符号位的值
       例: m >> n  结果:m/2^n

    '''

谢谢观看

加群一起讨论吧!589300334

### Python位运算符与逻辑运算符的区别和使用方法 #### 一、位运算符 位运算符是对二进制数的每一位进行操作的工具。它们主要用于处理整数值,通过按位计算实现特定功能。 常见的位运算符及其含义如下: - `&` (按位与): 对两个操作数的每一位执行“与”操作。只有当两位均为1时,结果才为1[^1]。 - `|` (按位或): 对两个操作数的每一位执行“或”操作。只要有一位为1,结果即为1。 - `^` (按位异或): 如果对应位不同则结果为1,相同则为0。 - `~` (按位取反): 将每一个比特位翻转,即将0变为1, 1变为0。 - `<<` (左移): 左边的操作数向左移动指定数量的位置,右边填入零。 - `>>` (右移): 右边的操作数向右移动指定位置的数量,左边补符号位。 示例代码展示位运算的应用: ```python a = 60 # 二进制表示: 0011 1100 b = 13 # 二进制表示: 0000 1101 c = a & b # 结果: 12, 即 0000 1100 d = a | b # 结果: 61, 即 0011 1101 e = a ^ b # 结果: 49, 即 0011 0001 f = ~a # 结果: -61, 即 1100 0011 g = a << 2 # 结果: 240, 即 1111 0000 h = a >> 2 # 结果: 15, 即 0000 1111 ``` #### 二、逻辑运算符 逻辑运算符用于组合布尔表达式并返回布尔值(True 或 False)。这些运算符主要应用于控制流结构中,比如条件语句和循环。 常见逻辑运算符及其行为描述如下: - `and`: 若两个操作数均等价于 True,则返回第二个操作数的值;否则返回第一个等价于 False 的操作数的值[^3]。 - `or`: 若任一操作数等价于 True,则返回该操作数的值;仅当两者皆为 False 时才会返回最后一个操作数的值。 - `not`: 返回输入布尔值的否定形式。如果输入为 True 则返回 False,反之亦然。 需要注意的是,在涉及多个逻辑运算符的情况下,其优先级顺序遵循 **not > and > or** 的原则[^2]。 以下是逻辑运算的一个例子: ```python x = True y = False result_and = x and y # 输出: False result_or = x or y # 输出: True result_not_x = not x # 输出: False ``` #### 三、两者的区别 尽管位运算符和逻辑运算符看似相似,但实际上存在显著差异: 1. **作用对象**: 位运算符针对整数类型的二进制位工作,而逻辑运算符专注于布尔值或者可被解释成布尔意义的对象。 2. **返回值类型**: 位运算总是返回一个新的整数值作为结果;相比之下,逻辑运算倾向于给出布尔型的结果,除非参与其中的数据本身是非布尔量。 3. **应用场景**: 使用场景上也有所区分——位运算是低层编程技巧的一部分,常用来优化存储空间或提升性能;而逻辑运算更多见诸高级别的算法设计以及日常开发中的分支决策过程之中. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星尘0110

你的 打赏将是我的进步的一大动

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值