python---十進制轉換成n進制


"""
十進制轉換成n進制

例子: 100轉換成8進制-----144
      256除8  商32 余0
      32除8   商4  余0
      4除8    商0  余4
      每次結果的余數進棧, 最后出棧
"""


def decimal_conversion(num, base):
    if base <= 0:
        print("base error")
        return

    if not num:
        print(0)
        return
    if num < base:
        print(num)
        return

    # 商
    quotient = num // base
    # 余數
    remainder = num % base

    # 存放結果的棧
    conver_stack = [remainder]

    while quotient >= base:
        remainder = quotient % base
        quotient = quotient // base
        conver_stack.append(remainder)

    conver_stack.append(quotient)

    for i in range(len(conver_stack)):
        print(conver_stack.pop(), end="")
    print()


decimal_conversion(8644197605847452079, 2)  # 111011111110110010110111110110001110000110100011100100110101111
decimal_conversion(1025, 2)                 # 10000000001
decimal_conversion(3, 2)                    # 11
decimal_conversion(1, 2)                    # 1
decimal_conversion(0, 2)                    # 0
decimal_conversion(100, 8)                  # 144


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM