Re: [問題] 十進位數字轉換成任何進位的數字

看板Python作者 (虹月)時間11年前 (2013/01/13 12:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Blocat (楊呆貓)》之銘言: : 想把一個十進位數字轉成一個其他進位的數字 (從二到十六進位) : google一下好像沒有函式可做到這件事情 : 於是自己來做 : 但覺得自己的方法可能不是最漂亮的 : 想問板上的大大們是否有更好的方法 : 謝謝! : 以下是程式碼 : number = [] : base = input("Please enter a number (2~16): ") : sum = input() : while (sum != 0): : if (sum % base) <= 9: : number.append(str(sum % base)) : else: : number.append(chr(sum % base + 55)) # 把 10 以上的數字轉 : sum = sum / base 最近無聊在自學pyhone 就用自己的想法寫了一個 n=int(raw_input("n:")) m=int(raw_input("carry:")) s=str() while n>0: i= n % m if i>9: mm=str(chr(i+55)) else: mm=str(i) s=mm+s n = n // m print s -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.93.19 轉換 X進位變成 X進位 (X=2~37) def work(): s=str() abc=int() x=raw_input("Number:") y=int(raw_input("OldCarry:")) m=int(raw_input("NewCarry:")) for Ai in range(1,len(x)+1): od=ord(str(x)[Ai-1:Ai])-87 if od <0:od=od+32 if str(x)[Ai-1:Ai].isalpha(): abc=(od)*(y**(len(x)-Ai))+abc else: abc=int(str(x)[Ai-1:Ai])*(y**(len(x)-Ai))+abc while abc>0: iu= abc % m if iu>9: mm=str(chr(iu+55)) else: mm=str(iu) s=mm+s abc = abc // m return s while True: print work() ※ 編輯: icps 來自: 118.166.145.157 (01/17 18:27)
文章代碼(AID): #1GyZKhdh (Python)
文章代碼(AID): #1GyZKhdh (Python)