常用进制: 二进制(Binary)、八进制(Octal)、十进制(Decimal)、十六进制(Hexadecimal)。
进制之间关系图:
二进制、八进制、十六进制转十进制
1 | '0b11010',2) int( |
八进制、十进制、十六进制转二进制
八进制、十六进制不能直接转成二进制,需要先转十进制。
1 | 26) bin( |
二进制、十进制、十六进制转八进制
同样,二进制、十六进制不能直接转成八进制,需要先转十进制。
1 | 26) oct( |
二进制、十进制、八进制转十六进制
同样,二进制、八进制不能直接转成十六进制,需要先转十进制。
1 | 26) hex( |
延伸问题
判断一个数是否是2的幂次方,若是,并判断出来是多少次方?
1
2
3
4
5
6
7import math
def calPowerOf2(num):
assert num & num-1 == 0, "This number is not power of 2"
return math.log(num, 2)
print(calPowerOf2(1024)) # echo 10给定一个数n,求大于等于n的2的最小次幂?
1
2
3
4
5
6
7
8
9
10def nextPowerOf2(n):
count = 0;
if n and not (n & (n - 1)):
return n
while (n != 0):
n >>= 1
count += 1
return 1 << count
print(nextPowerOf2(100)) # echo 128