p33 逻辑运算符、位运算

逻辑运算符:and(逻辑与) 、or(逻辑或)、not(逻辑非)   结果返回True或False

进制转换: 

(1)十进制转二进制     bin()

# 十进制转二进制   (正数十进制)
a = 13
print(bin(a))
# 十进制转二进制  (负数的十进制)
'''
(1)现将负数变成正数
(2)正数取反
(3)+1
'''
a = -5   
# 5 的二进制    101
# 取反         010
# +1          011
print(bin(a))

(2)二进制转十进制

# 二进制转十进制
a = 0b10111
print(int(b))

(3)八进制转二进制   (0o  八进制)

e = 0o721           
'''
7   2   1  
111  010 001
'''
print(bin(e))   # 0001 1101 0001

(4)十六进制 (0x)

# 十六进制
f = 0x9
print(int(f))

# 0o52510  二进制
'''
52510  
101 010 101 001 000
'''
# 0xF0610c  二进制
'''
1111 0000 0110 0001 0000 1100
'''

位运算符:

&  (与)
|(或)
~  (取反的符号)
^ (异或)
 <<  (左移)
>>  (右移)

# 与
print(3 & 2)
'''
011
010
----
0 1 0
'''

# 或
print(5 | 3)

# 非
print(~5)   # 取反。
'''
看第一位(第一位是符号位,第一位是1负数,第一位是0正数)
如果是负数的话,先-1,然后取反
0000 0101   5
1111 1010   取反
1111 1001   减1
0000 0110   取反    print(~5)的结果   0000 0110  -6
'''

# 异或^  (上下两数,相同为0,不同为1)
print(3^5)  
'''
0000 0011
0000 0101
---------
0000 0110  6
'''

# 左移,右移  都得补零
print(2<<1)   4
print(2>>1)  1
'''
规律:
左移:m<>n  m // 2的n次方 
'''

 

你可能感兴趣的:(python)