python中的进制转换与位运算

1. 进制转换

n = 16
print(n)
print(bin(n))   # 十进制转二进制
print(oct(n))   # 十进制转八进制
print(hex(n))   # 十进制转十六进制

# 16
# 0b10000
# 0o20
# 0x10

print(int('10000', 2))  # 二进制转十进制
print(int('0o20', 8))   # 八进制转十进制
print(int('0x10', 16))  # 十六进制转十进制

# 除十进制外,其他进制之间相互转换,需要使用十进制中转
# 八进制转十六进制,应该先由八进制转成十进制,再从十进制转十六进制
print(hex(int('0o20', 8)))

2. 位运算

# &:按位与运算符,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
print(bin(21))
print(bin(6))
print(bin(21 & 6))

# |:按位或运算符,只要对应的二个二进位有一个为1时,结果位就为1;
print(bin(21))
print(bin(6))
print(bin(21 | 6))

 

 

# ^:按位异或运算符,当两对应的二进位相异时,结果为1;
print(bin(21))
print(bin(6))
print(bin(21 ^ 6))

# ~:按位取反运算符,对数据的每个二进制位取反,即把1变为0,把0变为1;
print(bin(21))
print(~21)
print(bin(~21))

 

 

# >>:右移动运算符,把 >> 左边的运算数的各二进位全部右移若干位,>> 右边的数指定移动的位数;
print(bin(21))
print(21 >> 3)
print(bin(21 >> 3))

# <<:左移动运算符,运算数的各二进位全部左移若干位,由 << 右边的数指定移动的位数,高位丢弃,低位补0。
print(bin(21))
print(21 << 3)
print(bin(21 << 3))