python
def to_binary_list(num: int) -> list:
# 极特殊情况:如果数字本身就是 0,直接返回 [0]
if num == 0:
return [0]
binary_list = []
# 只要商还没变成 0,就一直除下去
while num > 0:
# 1. 拿到当前除以 2 的余数(必定是 0 或 1)
remainder = num % 2
# 2. 把余数塞进列表
binary_list.append(remainder)
# 3. 把数字整除 2(也就是丢掉余数后的商),准备进入下一轮
num = num // 2
# 注意:因为是先算出来的最后一位,所以列表是反的
return binary_list[::-1]
# 测试一下
print(to_binary_list(10)) # 输出: [1, 0, 1, 0]
/(普通除法 / 真除法)
print(10 / 3) # 输出: 3.3333333333333335
print(10 / 2) # 输出: 5.0 (注意:哪怕刚好除尽,也会带个 .0)
//(整除 / 向下取整)
print(10 // 3) # 输出: 3
print(10 // 2) # 输出: 5
%(取模 / 取余数)
print(10 % 3) # 输出: 1
print(10 % 2) # 输出: 0