Python 位运算符中的 & | ^ 运算逻辑详解

    Python中的位运算符 也称二进制运算符,并且这些运算符只用于对整型数进行运算。进行位运算时,整型数被转换为二进制形式,然后位运算符对每位执行有关运算后,将结果再转换回十进制形式,并返回给用户。


    以下将详解 & 、|、 ^ 这三种 运算逻辑


    &(与) : 按位逻辑运算符, 从代码可见,5的二进制为 101, 6的二进制为 110,与运算逻辑为 "见假为假“ , 因此 101 & 110 的二进制结果为 100,转换为十进制就是 4



在这里插入图片描述



decimal_num1 = 5
decimal_num2 = 6

binary_num1 = bin(decimal_num1)[2:]
binary_num2 = bin(decimal_num2)[2:]

print(str(decimal_num1) + f'的二进制为:{binary_num1}')
print(str(decimal_num2) + f'的二进制为:{binary_num2}')

result_and = decimal_num1 & decimal_num2
print(f'按位与运算结果的十进制为:{result_and}')

result_and_binary = bin(result_and)[2:]
print(f'按位与运算结果的二进制为:{result_and_binary}')

result_and_integer = int(result_and_binary,2)
print(f'把按位与运算结果的二进制转换为十进制为:{result_and_integer}')


    |(或) : 按位或逻辑运算符,从代码可见,5的二进制为 101, 6的二进制为 110,或运算逻辑为 "见真为真“ , 因此 101 & 110 的二进制结果为 111,转换为十进制就是 7



在这里插入图片描述



decimal_num1 = 5
decimal_num2 = 6

binary_num1 = bin(decimal_num1)[2:]
binary_num2 = bin(decimal_num2)[2:]

print(str(decimal_num1) + f'的二进制为:{binary_num1}')
print(str(decimal_num2) + f'的二进制为:{binary_num2}')

# result_and = decimal_num1 & decimal_num2
# print(f'按位与运算结果的十进制为:{result_and}')
#
# result_and_binary = bin(result_and)[2:]
# print(f'按位与运算结果的二进制为:{result_and_binary}')
#
# result_and_integer = int(result_and_binary,2)
# print(f'把按位与运算结果的二进制转换为十进制为:{result_and_integer}')

result_or = decimal_num1 | decimal_num2
print(f'按位与运算结果的十进制为:{result_or}')

result_or_binary = bin(result_or)[2:]
print(f'按位与运算结果的二进制为:{result_or_binary}')

result_or_integer = int(result_or_binary,2)
print(f'把按位与运算结果的二进制转换为十进制为:{result_or_integer}')


    ^(异或) : 按位异或逻辑运算符,从代码可见,5的二进制为 101, 6的二进制为 110,异或运算逻辑为 "相同为0,相异为1“ , 因此 101 & 110 的二进制结果为 011(也就是11),转换为十进制就是 3



在这里插入图片描述



decimal_num1 = 5
decimal_num2 = 6

binary_num1 = bin(decimal_num1)[2:]
binary_num2 = bin(decimal_num2)[2:]

print(str(decimal_num1) + f'的二进制为:{binary_num1}')
print(str(decimal_num2) + f'的二进制为:{binary_num2}')

# result_and = decimal_num1 & decimal_num2
# print(f'按位与运算结果的十进制为:{result_and}')
#
# result_and_binary = bin(result_and)[2:]
# print(f'按位与运算结果的二进制为:{result_and_binary}')
#
# result_and_integer = int(result_and_binary,2)
# print(f'把按位与运算结果的二进制转换为十进制为:{result_and_integer}')

# result_or = decimal_num1 | decimal_num2
# print(f'按位与运算结果的十进制为:{result_or}')
#
# result_or_binary = bin(result_or)[2:]
# print(f'按位与运算结果的二进制为:{result_or_binary}')
#
# result_or_integer = int(result_or_binary,2)
# print(f'把按位与运算结果的二进制转换为十进制为:{result_or_integer}')

result_dif_or = decimal_num1 ^ decimal_num2
print(f'按位与运算结果的十进制为:{result_dif_or}')

result_dif_or_binary = bin(result_dif_or)[2:]
print(f'按位与运算结果的二进制为:{result_dif_or_binary}')

result_dif_or_integer = int(result_dif_or_binary,2)
print(f'把按位与运算结果的二进制转换为十进制为:{result_dif_or_integer}')


在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值