示例:
233转为2进制:除2法,转8进制除8,转16进制除16
二进制数的尾:233//2=116 余1
116//2=58 余0
58//2=29 余0
29//2=14 余1
14//2=7 余0
7//2=3 余1
3//2=1 余1
二进制数的头: 1//2=0 余1
二进制数为头——>尾的余数,即:11101001
11101001转为10进制:
1 1 1 0 1 0 0 1
下标 7 6 5 4 3 2 1 0
计算:1*2**7+1*2**6+1*2**5+0*2**4+1*2**3+0*2**2+0*2**1+1*2**0=128+64+32+0+8+0+0+1=233
完整代码:
# 二进制转换成十进制
def two_to_ten(s1):
length = len(s1)
s2 = s1[::-1] #切片[开始:结束:步长],用作反转,并生成新值
num = 0
for i in range(length):
num += int(s2[i])*2**i
return num
# 定义栈类
class Stack(object):
def __init__(self): #初始化空栈
self.items &