欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

4.Python 进制和位运算

程序员文章站 2022-05-29 08:12:17
一、二进制转换¶ In [1]: a = 3 print(bin(a)) #bin()转换为二进制 0b11 In [2]: b = 0b10 print(int(b)) #int()转换为十进制 2 负数的二进制¶ 求-5的二进制表示¶ step1:先求正数的二进制。5->0000 0101¶ s ......
 

一、二进制转换

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 
 
1