Python进制数字中位操作

除了一般数字运算,Python也支持C语言中的大多数数学表达式。这包括那些把整数当作二进制位串对待的操作。还可以实现卫衣和布尔操作:

>>> X = 1       # 0001
>>> X << 2      # 左移两位,成了0100,即4
4
>>> X | 2       # 异或(0001 | 0010), 即3
3
>>> X & 1       # 同或(0001 & 0001), 即1
1
>>>

这样的按位进行编码的运算,使我们可以对一个整数进行多个标志位和值进行编码, Python 2.6开始支持二进制和十六进制变得特别有用,它允许我们按照位字符串来编写和查看数字:

>>> X = 0b0001           # 二进制数字
>>> X << 2               # 数字左移2位
4

>>> bin(X << 2)          # 将二进制数字左移的结果以二进制的方式来显示
'0b100'

>>> bin(X | 0b010)       # 将二进制数字异或的结果以二进制的方式来显示
'0b11'

>>> bin(X & 0b1)         # 将二进制数字同或的结果以二进制的方式来显示
'0b1'

>>> X = 0xFF             # 十六进制数字
>>> bin(X)               # 对应的二进制
'0b11111111'

>>> X ^ 0b10101010       # 异或结果
85

>>> bin(X ^ 0b10101010)  # 异或的结果转变成二进制
'0b1010101'

>>> int("1010101", 2)    # 二进制
85

>>> hex(85)              # 十六进制
'0x55'

>>>

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值