Python 进制和位运算

一、二进制转换

In [1]:

a = 3
print(bin(a))   #bin()转换为二进制

 

0b11

In [2]:

b = 0b10
print(int(b))  #int()转换为十进制

 

2

 

负数的二进制

求-5的二进制表示

step1:先求正数的二进制。5->0000 0101

step2:取反。 1111 1010

step3:反码加1。 1111 1011

 

二、位运算

与:  &
或:  |
非:  !
异或:^
左移:<<
右移:>>

In [3]:

print(3 & 2)  # 0000 0011 & 0000 0010 = 0000 0010

 

2

In [4]:

print(5 | 3) # 0000 0101 | 0000 0011 = 0000 0111

 

7

In [5]:

print(~5)   # ~0000 0101 = 1111 1010  看第一位符号位,为1是负数。取反:0000 0101 加1:0000 0110

 

-6

In [6]:

print(~10)  # ~0000 1010 = 1111 0101                             取反:0000 1010 加1:0000 1011

 

-11

In [7]:

print(~3)   # ~0000 0011 = 1111 1100                             取反:0000 0011 加1:0000 0100

 

-4

In [8]:

print(3^5) # 0000 0011 ^ 0000 0101 = 0000 0110

 

6

 

左移n位相当于乘以2的n次方

In [9]:

print(2<<1) # 0000 0010 << 1 = 0000 0100   

 

4

 

右移n位相当于除以2的n次方

In [10]:

print(2>>1) # 0000 0010 >> 1 = 0000 0001 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值