逻辑运算符: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次方
右移:m>>n m // 2的n次方
'''