一个整数转换为二进制

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

相关推荐
To_OC4 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
闪电悠米16 小时前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵
过期动态19 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
Adios7941 天前
设置交集大小至少为2
数据结构·算法·leetcode
程序猿乐锅1 天前
【数据结构与算法 | 第六篇】力扣1109,1094差分数组
java·算法·leetcode
hold?fish:palm2 天前
9 找到字符串中所有字母异位词
c++·算法·leetcode
Sw1zzle2 天前
算法入门(六):贪心算法 - 基础入门(Leetcode 121/455/860/376/738)
算法·leetcode·贪心算法
青山木2 天前
Hot 100 --- 岛屿数量
java·数据结构·算法·leetcode·深度优先·广度优先
啦啦啦啦啦zzzz2 天前
算法:回溯算法
c++·算法·leetcode
小肝一下2 天前
3. 单链表
c语言·数据结构·c++·算法·leetcode·链表·dijkstra