十进制转二进制
核心代码
while temp >=1 :
list.append(temp%2) # 把余数放进数组中
temp //= 2 # 对原数进行整除
或者使用divmod
函数
while temp >=1 :
temp, remainder = divmod(temp, 2)
list.append(str(remainder))
方法一:直接使用列表逆序打印输出
这里需要注意,对列表进行反转操作,方法为list.reverse()
def dec2bin1(num):
temp = num
list = []
while temp >= 1:
list.append(temp%2)
temp //= 2
# 注意,在这里反转列表,不是在for循环中,for循环中的reverse表示对序列里面的值进行排序!
list.reverse()
# for ii in sorted(list, reverse = True)这样是对值value进行排序,错误!
for ii in list:
print(ii, end='')
方法二:使用队列deque直接打印输出
核心语句是引入队列,和在左侧添加数据
from collections import deque # 引入队列
queue = deque() # 队列的初始化
queue.appendleft(temp%2) # 在队列左侧进行操作
完整代码如下
def dec2bin2(num):
temp = num
from collections import deque
queue = deque()
while temp >= 1:
queue.appendleft(temp%2)
temp //= 2
for ii in queue:
print(ii, end