用python写10进制转2进制小程序(超详细)

用python写10进制转2进制小程序

										   	小白写py
前言:写这个代码是为了增强2进制转换的记忆, 代码详细介绍了 2进制转换的过程,如果是 *大神请果断到页尾 * 欢迎修改并更新!
首先定义两个变量,l1,l2
l1 = 你要转换的10进制数

l1 = int(input('请输入要转换的10进制数:'))

l2 = 转化为2进制的数
l2 = []

因为函数循环问题,当l1 = 1时会循环好几次,不能跳出循环

接着定义两个函数qyd,qyx
def qyx(l1):#调用新赋值的 l1
    while l1 % 2 == 0:
        l2.insert(0, 0)  # 如果l1%2等于0,则列表l2索引0处添加0
        l1 //= 2  # l1=l1/2
        if l1 == 1:
            l2.insert(0, 1)
            print('结果在这:',l2)
    else:
        qyd(l1=l1)#li再赋值
        print(l1, l2)

def qyd(l1):#调用新赋值的 l1
    while l1 % 2 == 1:  # 取余与0比较
        l2.insert(0, 1)  # 如果l1%2不等于0,则列表l2索引0处添加1
        l1 //= 2  # l1=l1/2
        if l1 <= 1:
            l2.insert(0, 1)
            print('结果在这:',l2)
    else:
        qyx(l1 = l1)#li再赋值
        print(l1,l2)
主程序
while l1 % 2 == 0:  #debug 在这
    qyx(l1 = l1)#当l1 % 2 == 0时,调用def qyx,并赋值
else:
    qyd(l1 = l1)#当l1 % 2 != 0时,调用def qyd,并赋值

所有代码

# 10进制装换2进制
l1=int(input('请输入要转换的10进制数:'))
print('如果有多个答案,请选择第一个!')
l2 = []
print('YSF出品')
print('ysfcn.website')
print('万水青山总是情,点个关注行不行!')


#定义两个函数qyx qyd
def qyx(l1):
    while l1 % 2 == 0:
        l2.insert(0, 0)  # 如果l1%2等于0,则列表l2索引0处添加0
        l1 //= 2  # l1=l1/2
        if l1 == 1:
            l2.insert(0, 1)
            print('结果在这:',l2)
    else:
        qyd(l1=l1)
        print(l1, l2)


def qyd(l1):
    while l1 % 2 == 1:  # 取余与0比较
        l2.insert(0, 1)  # 如果l1%2不等于0,则列表l2索引0处添加1
        l1 //= 2  # l1=l1/2
        if l1 <= 1:
            l2.insert(0, 1)
            print('结果在这:',l2)
    else:
        qyx(l1 = l1)
        print(l1,l2)


while l1 % 2 == 0:  #debug 在这
    qyx(l1 = l1)
else:
    qyd(l1 = l1)

此链接是对比数据用的

点击这里给我发消息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章