数据结构与算法

栈的应用: 十进制转化

2021-01-16  本文已影响0人  呀比是只鱼

二进制:计算机原理中最基本的概念,作为组成计算机最基本部件的逻辑门电路,其输入和输出只包含0和1。

进制:用多少个字符来表示整数
十进制:用0~9十个数字字符来表示,二进制用0、1两个字符

十进制转化为二进制:

对于十进制的数除以2,并依次记录余数,每次得到的余数就是由低到高的二进制位

”除以2“的过程,得到的余数是从低到高的次序,而输出则是从高到低,所以需要用到栈来进行次序反转

def convertToBaseN(num: int, base: int):
    s = []
    digit = '0123456789ABCDEF'
    if num > 0:
        while num > 0:
            rem = num % base
            s.append(rem)
            num = num // base
        newstring = ""
        while len(s) > 0:
            newstring = newstring + digit[s.pop()]
    elif num < 0:
        num = abs(num)
        while num > 0:
            rem = num % base
            s.append(rem)
            num = num // base
        newstring = "-"
        while len(s) > 0:
            newstring = newstring + digit[s.pop()] 
    else:
        return "0"
    return newstring
上一篇 下一篇

猜你喜欢

热点阅读